Actuellement, WeChat fournit 10 M d'espace de cache local pour chaque mini-programme (oh mon dieu, c'est tellement gros)
Avec le cache local, votre mini-programme peut faire :
Application hors ligne (testée pour fonctionner avec des données mises en cache sans réseau)
Expérience utilisateur fluide
Réduisez les requêtes réseau et économisez les ressources du serveur
Quelles données conviennent au cache :
Données chaudes
Données statiques (données utilisateur, identifiant d'autorisation du serveur, etc.)
Adresse réseau (adresse réseau des images, fichiers, etc.)
Données de la liste de pagination et contenu détaillé
Les systèmes de cache généraux utilisent des paires clé-valeur pour terminer l'insertion et la lecture des données en effectuant un . Algorithme de hachage sur clé, une valeur unique est obtenue et liée à la valeur ; lorsque interroge , l'espace de l'algorithme est interrogé en fonction de la clé hachée Complexité O(1) ;
L'implémentation du cache local du mini programme est basée sur la méthode ci-dessus. Cependant, il reste à étudier si les données sont stockées dans la ROM ou dans la RAM à des fins de persistance.
Il existe deux types d'opérations de données de cache local : synchrones et asynchrones. La méthode de synchronisation a une fonction de rappel de réussite , qui indique l'opération après un traitement réussi des données. Voici l'interface d'opération de cache local fournie par le mini programme :
操作 | 异步方法 | 同步方法 |
---|---|---|
插入 | wx.setStorage | wx.setStorageSync |
读取 | wx.getStorage | wx.getStorageSync |
删除 | wx.removeStorage | wx.removeStorageSync |
清空 | wx.clearStorage | wx.clearStorageSync |
获取缓存信息 | wx.getStorageInfo | wx.getStorageInfoSync |
Toutes les méthodes se terminant par Sync sont des méthodes de synchronisation. La différence entre les méthodes synchrones et les méthodes asynchrones est la suivante :
Les méthodes synchrones bloqueront la tâche en cours jusqu'au retour de la méthode synchrone.
Les méthodes asynchrones ne bloqueront pas la tâche en cours.
6. Voici deux méthodes d'insertion de cache pour illustrer la différence entre la synchronisation et l'asynchrone :
1. Appelez d'abord la méthode asynchrone, puis appelez la méthode synchrone. méthode
Page({save: function(e){console.log('开始保存')wx.setStorage({ key: 'key1', data: 'data1', success: function(res){ console.log('异步保存成功') }})wx.setStorageSync('key2', 'data2')console.log('同步保存成功') }})
Résultat de l'exécution :
On peut voir que la méthode synchrone est enregistrée avec succès avant la méthode asynchrone, indiquant que la méthode asynchrone ne bloque pas le tâche actuelle.
1. Appelez d'abord la méthode synchrone, puis la méthode asynchrone
Page({save: function(e){console.log('开始保存')wx.setStorageSync('key2', 'data2')console.log('同步保存成功')wx.setStorage({ key: 'key1', data: 'data1', success: function(res){ console.log('异步保存成功') }}) }})
Résultat de l'exécution :
On voit que la méthode asynchrone ne peut attendre que la synchronisation. La méthode ne sera exécutée que si elle réussit.
CacheAPI fournit une interface wx.getStorageInfo pour obtenir des informations sur le cache local. Grâce à elle, les développeurs peuvent réencapsuler l'API existante, par exemple en ajoutant du temps de cache et en insérant des lots sans écraser. suppression, détermination de la taille actuelle du cache, etc.
Le dernier est la question du niveau d'isolation du cache :
Le même téléphone mobile, différentes applications de mini-programmes, du moins en termes de stockage logique, sont définitivement pas de caches partagés, qui répondent à l'isolation au niveau de l'application.
Le même téléphone mobile, la même applet, peut être utilisé par différents utilisateurs de WeChat en scannant le code. Après test, le cache n'est pas partagé. Dans les conditions de test actuelles, c'est l'utilisateur. -niveau d'isolement.
Le même téléphone mobile, le même mini programme, le même utilisateur WeChat a scanné le code deux fois et l'a utilisé Après test, c'est un cache partagé.
Le même téléphone mobile, la même applet, peuvent être commutés par différents utilisateurs de WeChat (scannez le code deux fois respectivement). Après test, le même utilisateur partage le cache, mais différents utilisateurs le font). ne partage pas le cache.
Actuellement, on peut en déduire que dans des conditions réelles de débogage de la machine, chaque utilisateur d'analyse de code de mini-programme se verra attribuer un cache local de 10 M.
Les résultats ci-dessus sont obtenus par des tests personnels sur des appareils réels. Les résultats peuvent ne pas être complètement précis et sont uniquement à titre de référence.
[Recommandations associées]
1. Téléchargement du code source de la plateforme de compte public WeChat
3 WeChat People Network v3.4.5 Advanced Business Edition Code source de WeChat Rubik's Cube
.Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!