Question

Je me demande si certains d'entre vous sont au courant des approches architecturales prises par l'équipe Wave construire son client web GWT? Depuis que je suis en train d'optimiser les performances d'une application GWT conçue pour les mobiles, il est difficile de ne pas admirer ses pouvoirs rapides :)

  • est pas vague GWT-RPC pour obtenir des mises à jour régulières de serveur? Firefox suit une communication JSON va sur le fil, mais rien comme la substance RPC.

  • Comment font-ils procéder lorsque, par exemple, est envoyé une nouvelle ondelettes. Y at-il un objet de vue pour chaque DTO d'onde, ou ils utilisent un autre modèle?

  • Comment est GUI mis à jour après une réponse, disons, une nouvelle arrive Wave. Est-ce que la région entière avec vaguelettes étant l'utilisation ou nouveau rendu certaines des techniques intelligentes pour faire en sorte que seul élément particulier est touché?

Merci

Était-ce utile?

La solution

Ceci est probablement la surcharge d'information, mais étant donné que Google Wave est open source, vous pouvez réellement regarder comment ils ont mis les choses .

Si vous regardez WaveView.java, par exemple, vous pouvez voir qu'ils utilisent un bus d'événements côté client comme Ray Ryan mentionné dans ce discours à Google IO 2009. Je me souviens avoir vu une autre vidéo où ils ont parlé de ces aspects de Google Wave:

  • Ils utilisent un système d'événements pour déclencher des événements lorsque quelque chose se passe du côté client. Le système d'événements gère la communication avec le serveur, la transmission d'informations d'événements sur le serveur, obtenir des événements à partir du serveur, et la publication de ces événements qui reviennent. Le bus d'événements utilise une sorte de tampon de sorte que si un groupe d'événements sont déclenchés au large en succession rapide, ils peuvent les envoyer en un seul lot. Par exemple, lorsqu'un nouveau vague, un événement avec les informations d'onde seraient renvoyés, et toutes les parties de l'interface utilisateur qui sont à l'écoute active pour cet événement serait avisé, afin qu'ils puissent déterminer si elles avaient besoin de se changer en conséquence.
  • Ils points de couture utilisés (ou quelque, je ne me souviens pas du nom) de faire en sorte que GWT pourrait briser le code en modules, et seulement charger les parties qui doivent être effectivement utilisés. Depuis le fichier javascript ui vague était à l'origine sur 1MB (minified et comprimé), qui était très important.
  • Depuis que certaines ondes et vaguelettes seraient visibles à la fois, ils ont effectivement utilisé des techniques complexes de réutiliser les mêmes éléments DOM. Alors que vous faites défiler vers le bas dans votre liste d'ondes, il prend en fait l'élément DOM représentant l'onde en haut de votre boîte de réception, en changeant l'intérieur de l'information, et le déplacement vers le bas de votre zone de défilement, en laissant un espace vide dans la partie de la zone de défilement que vous ne voyez plus.

De plus, je suis sûr qu'ils utilisent quelque chose comme la comète avec JSONP pour maintenir une communication continue avec le serveur, donc ils ne sont pas d'interrogation du serveur en permanence de nouvelles mises à jour, mais il y a un fichier javascript généré dynamiquement qui est en cours de chargement dans progressivement à partir du serveur, qui contient des instructions à feu tout événement que le serveur a décidé besoin d'être tiré.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top