2017-09-22 6 views
0

dans un blog avec défilement infini, côté client interrogeront serveur pour les messagescurseur à base Pagination et détecter les changements dans les données en temps réel pour des applications hors ligne premier

exemple max_id = 0, min_id = 0. le serveur répondra avec le dernier enregistrement 30 [id:1000,999,998 etc..,970].

maintenant la prochaine requête du client demandera max_id=1000&min_id=970, serveur répondra avec 30 autres messages qui a ids> 1000 ou inférieure à 970. s'il n'y a pas de messages plus récents que 1000, alors la réponse normale aura id 970-940 .

ceci est implémenté dans un scroll infini. et pour la première application hors ligne, tous les messages sont enregistrés côté client et présentés lors de la prochaine visite de l'utilisateur.

maintenant la prochaine fois que l'utilisateur ouvrira l'application, il affichera les messages max_id=1000&min_id=930 et obtiendra de nouveaux messages ou récupérera des messages plus anciens, mais ** il ne peut en aucun cas détecter un changement dans l'un des messages qu'il a déjà dans côté client. **

dire que l'id de poste = 999 a été mis à jour par l'utilisateur. Le seul moyen d'obtenir cette mise à jour serait de requery server pour tous les messages comme s'il n'y avait pas de messages en cache. Je pense que c'est un gâchis de bande puisque 99% des fois il n'y aura pas de mises à jour, donc il n'y avait pas besoin de ce sur aller chercher.

Existe-t-il un modèle de conception qui aborde ce point dans les applications hors ligne?

Répondre

0

supposons un scénario:

  1. utilisateur chercher les messages du serveur
  2. application
  3. mises en cache les messages récupérés 3-
  4. utilisateur a quitté l'application
  5. utilisateur retour et montre app messages mises en cache tandis que chargement de utilisateur
  6. l'utilisateur a pris une action sur un poste en cache ici pouvez vérifier le poste et retourner un avertissement si quelque chose chang ed avant d'exécuter l'action.