Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以将外部JS脚本加载到blob中?_Javascript_Jquery_Blob - Fatal编程技术网

Javascript 是否可以将外部JS脚本加载到blob中?

Javascript 是否可以将外部JS脚本加载到blob中?,javascript,jquery,blob,Javascript,Jquery,Blob,我目前正在玩弄Workers,它们非常整洁,但有一件事肯定遗漏了:向Worker传递匿名函数的可能性。因为我有一些空闲时间,我想看看我是否能想出解决这个问题的办法。我认为实现这一点最明显的方法是使用,因此我设置了以下小脚本: var blob = new Blob(['var getLastSeen = function(player) { \ $.getJSON("fetch.php?player=" + player, function(data){

我目前正在玩弄Workers,它们非常整洁,但有一件事肯定遗漏了:向Worker传递匿名函数的可能性。因为我有一些空闲时间,我想看看我是否能想出解决这个问题的办法。我认为实现这一点最明显的方法是使用,因此我设置了以下小脚本:

var blob = new Blob(['var getLastSeen = function(player) { \
                    $.getJSON("fetch.php?player=" + player, function(data){ \
                        if(data.online) \
                            postMessage("online"); \
                        else if(data.online == false) \
                            postMessage(data.lastSeen); \
                    }); \
                    };\
                    getLastSeen("AI@speedersclan.org");'],{ "type" : "text\/javascript" });

var worker = new Worker(window.URL.createObjectURL(blob));

worker.onmessage = function (Event) {
    document.getElementById("logDisplay").innerText = Event.data;
};
(getLastSeen执行数据库查找以查看播放器上次登录的时间)

正如您可能注意到的,我需要jQuery来运行这个脚本,因此我认为我应该在Blob的开头添加一小段代码:

var head= document.getElementsByTagName("head")[0]; \ 
var script = document.createElement("script"); \
script.type= "text/javascript"; \
script.src= "//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"; \
head.appendChild(script); \
我没有注意到的是,在查看了Blob的类型之后,我应该立即注意到,没有办法与DOM交互,这意味着加载外部脚本显然是不可能的(至少对于我正在使用的方法)

(tl;dr)所以我的问题是,“尽管我不能与DOM交互,但如何将外部脚本加载到blob?”


编辑:我很清楚,对于一个简单的Ajax请求,我不需要jQuery,我只想知道它是否普遍可行。

导入脚本是否解决了您的问题


这就是通常在Worker中导入库的方式。但是,在这种情况下,我认为导入jquery仍然会很不走运,因为jquery需要访问DOM。请参阅。

导入密码是否解决了您的问题


这就是通常在Worker中导入库的方式。但是,在这种情况下,我认为导入jquery仍然会很不走运,因为jquery需要访问DOM。请参阅。

尽管它不能解决我在jQuery中的问题,但它仍然是我一直在寻找的。谢谢,尽管它不能解决我在jQuery上的问题,但它仍然是我一直在寻找的。谢谢