Recibo llamadas duplicadas para un recurso cuando se agrega a través de un script como una imagen usando jsdom y node-canvas.
Creo que hay algún tipo de interacción entre jsdom y canvas que realiza la llamada a ese punto final dos veces, no sé si alguien me puede ayudar a configurar esto correctamente, pero solo necesito una llamada.
const jsdom = require('jsdom'); const { JSDOM } = jsdom; const options = { runScripts: "dangerously", url: `https://localhost:8800`, resources: "usable" }; new JSDOM(` <html> <head><script src="https://code.jquery.com/jquery-3.5.1.min.js"></script></head> <body> <div id="my_img"></div> <script> var src_img = document.getElementById("my_img"); var testimg = document.createElement("img"); testimg.src = "https://revistahsm.com/wp-content/uploads/2018/08/Fiestas.png"; // example img testimg.width = 0; testimg.height = 0; src_img.appendChild(testimg); </script> </body> </html> `, options);Supongo que tiene que ver con el cambio de tamaño de la imagen, "después" de que se haya cargado. Tal vez debido a un "redibujado", o algo así. (el lienzo del navegador hace esto, si no recuerdo mal) . Acabo de probar esta teoría, así que si reordenas algunas líneas como esta
... testimg.width = 0; testimg.height = 0; testimg.src = "http://localhost:8080/Fiestas.png"; // example img src_img.appendChild(testimg); ...la imagen debe cargarse una sola vez. Lo acabo de probar y funcionó, pero aún no tengo la documentación ni la prueba del Código. Actualizaré la respuesta si / cuando encuentre la prueba de esta teoría (de trabajo).