jquery et worker

a marqué ce sujet comme résolu.

Bonsoir, dans le cadre de ma page utilise jquery. j’ai voulu tenté d’utilisé jquery dans le worker en fessant importScripts("jquery.js") qui ce trouve au même niveau que le fichier worker.js mais j’obtiens une erreure "Uncaught TypeError: Cannot read properties of undefined (reading 'createElement’)" donc je me demande si c’est possible ?

Au sein d’un web worker, les API sont limitées, c’est fait exprès. Toutes les fonctions permettant de manipuler le DOM ne sont pas disponibles, et createElement (utilisé dans jQuery) en fait sûrement partie d’après ton message d’erreur.

Voici une liste sur la doc MDN de ce qui est utilisable ou non.

En revanche, un worker ne pourra pas directement manipuler la page parente et notamment le DOM et les objets de la page. Il faudra effectuer ce traitement indirectement, via des messages.

MDN

Pourquoi as-tu besoin d’avoir jQuery dans un web worker ? Si c’est pour la simplicité des appels AJAX avec jQuery, sache que tu as une alternative légère non dépendante de jQuery, à savoir l’API Fetch.

+1 -0

C’est bien ce que redouté, c’est que je déplacé un bout de code qui génère un fichier pdf et qui demande un peut de temps et fait planté le threads principal.

Et comme j’avais utilisé jquery pour cela, je voulais me simplifier la vie sans devoir tous réécrire en js natif. et du coup je sais pas si la librairie jspdf va fonctionné ?

Aucune idée, je ne connais pas cette lib. Tu peux toujours essayer, si la lib n’a pas besoin de faire d’opérations interdites dans un web worker, ça peut marcher. Que fait cette lib ? Elle affiche un PDF ou elle génère un PDF (sans avoir besoin de manipuler le DOM) ?

+0 -0

Attention tout de même, car certains bibliothèque JavaScript qui génère des PDFs utilisent en réalité l’outil fourni par le navigateur (surtout celles qui permettent de "transformer" du HTML en PDF).

A voir donc si c’est permis dans un web worker (ça, je ne sais pas).

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte