使用 node-canvas 和 jsdom 重复调用资源
Duplicated calls for resource with node-canvas and jsdom
当使用 jsdom 和 node-canvas.
通过脚本将资源作为图像添加时,我收到了资源的 重复调用
我相信 jsdom 和 canvas 之间存在某种交互,会对该端点执行两次调用,我不知道是否有人可以帮助我正确配置它,但我只需要一个调用。
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);
我认为它与加载图像“之后”的图像大小调整有关。也许是因为“重绘”,或者如此。 (浏览器 canvas 这样做,如果我没记错的话)。
我刚刚测试了这个理论,所以如果你像这样重新排序一些行
...
testimg.width = 0;
testimg.height = 0;
testimg.src = "http://localhost:8080/Fiestas.png"; // example img
src_img.appendChild(testimg);
...
图像应该只加载一次。我刚刚试过了,它起作用了,但我还没有文档或代码证明。将更新答案 if/when 我找到了这个(有效的)理论的证明。
当使用 jsdom 和 node-canvas.
通过脚本将资源作为图像添加时,我收到了资源的 重复调用我相信 jsdom 和 canvas 之间存在某种交互,会对该端点执行两次调用,我不知道是否有人可以帮助我正确配置它,但我只需要一个调用。
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);
我认为它与加载图像“之后”的图像大小调整有关。也许是因为“重绘”,或者如此。 (浏览器 canvas 这样做,如果我没记错的话)。 我刚刚测试了这个理论,所以如果你像这样重新排序一些行
...
testimg.width = 0;
testimg.height = 0;
testimg.src = "http://localhost:8080/Fiestas.png"; // example img
src_img.appendChild(testimg);
...
图像应该只加载一次。我刚刚试过了,它起作用了,但我还没有文档或代码证明。将更新答案 if/when 我找到了这个(有效的)理论的证明。