当前位置:网站首页>[wechat applet] operation mechanism and update mechanism

[wechat applet] operation mechanism and update mechanism

2022-07-06 20:34:00 Front end Xiao Liu is not afraid of cattle

Hello, old man , Niuniu is more civilized again , We have explained some commonly used components above , As a developer , We also need to understand the running mechanism and update mechanism of the applet , That's the question , How much do you know about them ?
Today, Niuniu will take you to have a test , Don't take notes of what you don't understand !

One , Operating mechanism

The first one is about the running mechanism of the applet , The applet is started and finally destroyed , There are actually many different steps , Applets experience many states , The general operation mechanism is shown in the figure below .
 Insert picture description here
Next, let's begin to explain the detailed steps

1.1 Start of applet

Look at the picture above , We know , The applet will first have a Cold start , A simple explanation is The user opens the applet for the first time , Or the applet is automatically destroyed after a certain period of time and then opened again by the user , This is the time , The applet needs to reload the code , Reload boot .

At this time, a little friend may ask , What if you start the applet again before destroying it ? This time is called Hot start La , When using small programs at ordinary times , We will find that , Close the applet and reopen it soon , The loading speed is much faster than the former , This is because the applet was not destroyed , It is from the background state to the foreground state , This process is called hot start , It can also be said to cut the front desk .

1.2 Applet front and background

After the applet finishes loading , There will be two states , Namely Front desk status and Backstage status .

  • After the applet starts , When the interface is displayed , The applet is in Front desk status
  • And when we close the applet , In a certain amount of time , The applet is not really closed, that is, destroyed , But to enter what is said Backstage status , The applet is still running in the background , Part of it API The use of will be limited . The operation here is to cut the background in the previous figure .
  • Under normal circumstances , The time of background state will not last for a long time , After a short period of time, the pending event will be turned on , Go into suspend state ( Explain later ).
  • Before destruction , The user clicks the applet again to open it , The applet will start from Backstage status or Pending state Re enter Front desk status , This is the hot start we talked about earlier

1.3 Pending state

The applet is Backstage status After a short time , It will switch to Pending state , In this state , Wechat will stop the applet JS Thread execution , The content state of the applet will be temporarily preserved , event 、 Callback, etc. re-enter the applet In foreground status Will trigger .

Small tip:

  • The backstage doesn't stop JS Thread execution , If the applet is turned on Backstage music Location And other functions , The applet will not cut in from the background and hang , That is, the applet can run continuously

1.4 Applet destruction event

The last one is when the suspended state lasts too long ( It's thirty minutes now ), In order to reduce resource tension , Now , The applet will be destroyed .

There's another situation , When the applet takes up too much system resources , It will also be destroyed by the system or actively recycled by wechat clients .

In development , We can use wx.onMemoryWarning Monitor memory alarm events , Set memory cleanup .

Two , Renewal mechanism

We know , Wechat client will cache the code of the applet in the local cache , And developers will release updated new versions of small programs from time to time in the management background , So how does wechat client know whether there is a new version ?

In fact, wechat clients will have several opportunities to check the local cache , If there's a new version , Then update the applet code package , But if you happen to open the applet without these opportunities after releasing the new version , It may be an old version of the applet .

The following is a list of the time to check for updates

2.1 Synchronize updates at startup

Synchronous updates will affect the startup time of the applet , Synchronous updates do not necessarily occur at startup , In the following two cases , The update will be synchronized when the applet is started .

  • Check regularly and find new versions
    When wechat is running , It will regularly check whether the recently used applet has a new version , And set whether to update synchronously the next time you start the applet

  • The user hasn't used it for a long time
    I haven't used the applet for a long time , Wechat client iterates normally for applet version , These applets will be updated synchronously at startup .

2.2 Asynchronous update at startup

Every time the applet is cold started , There will be asynchronous check whether there is a new version of operation , If you find a new version , The new version code will be downloaded asynchronously , Without affecting the operation of the applet , But it can also lead to , If it is still the old version after startup , Only the next start , Will open the new version of the applet .

2.3 Developers manually trigger

Wechat provides a APIwx.getUpdateManager, You can prompt the user to restart the applet to update the new version when there is a new version

3、 ... and , Life cycle

Finally, let's end today with the life cycle .

  • The life cycle can be divided into two parts: program and page , For programs , When we first started the applet , Will trigger onLaunch Method , When our applet is initialized , Will trigger onShow Method , The page loads and displays , At this time, the... Of the display page is triggered onLoad and onShow Method , Successfully displayed page .

  • Show page for the first time , It will also trigger the page onReady Method , Render page elements , Be careful , The method , A page can only be called once .

  • When the applet cuts into the background , Be careful , The applet will trigger the page first onHide Method , Hide page , Trigger the program again onHide Method

  • When the applet cuts into the foreground from the background , The applet will trigger the program first onShow Method , Then trigger the... Of the page onShow Method , Display the page .

Here is an online picture for everyone to understand
 Insert picture description here
That's the end of this article , If it helps you , You can pay attention to the follow-up updates of Niuniu , Thank you for your support !
Debt see ~

原网站

版权声明
本文为[Front end Xiao Liu is not afraid of cattle]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/187/202207061228582101.html