2014-04-23 4 views
1

Je dois faire des appels ajax à un serveur REST/JSON depuis javascript. Les deux pour extraire les données vers le navigateur et pour pousser les données vers le haut. Dans un travailleur Web.Comment faire un appel ajax dans un web worker?

Étant donné que cela se trouve dans un travailleur Web, JQuery ne peut pas être utilisé (details here). Et JQuery-hive est une bibliothèque pour la gestion des travailleurs web, pas pour l'utilisation de JQuery dans un web worker (pour autant que je sache dans la documentation). Donc JQuery n'est pas une option.

Dans l'environnement limité d'un travailleur Web, comment puis-je effectuer des appels ajax?

+3

De la même manière que toute autre personne n'utilisant pas jQuery [effectue des appels Ajax] (https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest). – Quentin

+0

@Quentin Merci. Si vous écrivez cela comme une réponse, je suis heureux de marquer la réponse. –

Répondre

1

Voici quelque chose à considérer: jQuery est un outil d'abstraction: il ne peut rien faire qui ne soit pas possible avec JS basique. ça pourrait être plus facile avec un JS pur, ça pourrait être plus difficile. Mais ce n'est pas magique. Il fournit simplement une interface abstraite qui unifie les différentes implémentations de moteurs javascript dans différents navigateurs.

Dans ce cas, jQuery est une abstraction pour un XMLHttpRequest. Vous pouvez trouver un guide sur la façon d'utiliser cela sur tous les principaux sites Web javascript: w3schools.com, MDN, MSDN, ... Il ya aussi many questions on stack overflow qui explique comment faire cela. Un peu hors-sujet, mais c'est aussi l'une des raisons pour lesquelles je recommande aux personnes qui apprennent ou développent javascript d'apprendre à faire les choses manuellement, et de ne passer à une bibliothèque qu'après avoir appris les bases. Une bibliothèque est idéale pour l'abstraction, mais si vous n'avez pas appris ce qui est abstrait, vous avez des problèmes une fois que vous vous retrouvez dans une situation où vous n'avez pas accès à l'abstraction.

+0

Merci. Et je suis d'accord pour apprendre les bases en premier lieu, les bibliothèques en second lieu. Cependant, de nos jours, il y a tellement d'abstractions dans les bibliothèques, apprendre les bases partout prendrait vraiment une éternité. –

+0

Quand je parle des bases, je ne parle pas de la langue entière. fonction et déclaration et exécution de variables, manipulation d'objets, chargement de ressources à partir d'autres fichiers, évaluation conditionnelle et itération. Ce sont les bases que je pense que vous devriez être capable de faire sans une bibliothèque, en particulier dans JS. – Nzall

+0

J'ai ce travail (merci encore) qui me conduit à la question, pourquoi utiliser JQuery au lieu de XMLHttpRequest? JQuery scinde les événements done/fail/progress à la place de onereadystatechange mais cela ne me semble pas suffisant pour utiliser une bibliothèque. –