Maison  >  Article  >  Applet WeChat  >  Introduction au développement WeChat (9) Cache local

Introduction au développement WeChat (9) Cache local

零下一度
零下一度original
2017-05-24 09:55:261861parcourir

Actuellement, WeChat fournit 10 M d'espace de cache local pour chaque mini-programme (oh mon dieu, c'est tellement gros)

  1. 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 :
    Introduction au développement WeChat (9) Cache local

    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 :
    Introduction au développement WeChat (9) Cache local

    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 :

    1. 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.

    2. 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.

    3. 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é.

    4. 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

    2 Version de fonctionnement du système de micro-commerce PigCms. (centre commercial WeChat indépendant + système de distribution à trois niveaux)

    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!

    Déclaration:
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn