我有一个带有一些GET参数的URL,如下所示:
www.test.com/t.html?a=1&b=3&c=m2-m3-m4-m5
Run Code Online (Sandbox Code Playgroud)
我需要获得全部价值c.我试图读取URL,但我只是m2.我如何使用JavaScript执行此操作?
据我所知,Web worker需要在一个单独的JavaScript文件中编写,并像这样调用:
new Worker('longrunning.js')
Run Code Online (Sandbox Code Playgroud)
我正在使用闭包编译器来组合和缩小我的所有JavaScript源代码,而我宁愿不必将我的worker放在单独的文件中进行分发.有办法做到这一点吗?
new Worker(function() {
//Long-running work here
});
Run Code Online (Sandbox Code Playgroud)
鉴于第一类函数对JavaScript至关重要,为什么执行后台工作的标准方法必须从服务器加载整个'其他JavaScript文件?
这是一个刻意的设计决定还是我们当前浏览器的问题,将在未来版本中得到纠正?
什么相当于Thread.sleep()JavaScript中的Java ?
我有JavaScript执行大量的计算以及从DOM读取/写入值.该页面非常庞大,因此通常最终会锁定浏览器长达一分钟(有时更长时间使用IE),CPU占用率为100%.
是否有任何资源可以优化JavaScript以防止这种情况发生(我能找到的是如何关闭Firefox长时间运行的脚本警告)?
这看起来很傻,但我找不到如何使用不涉及某些服务器端请求的jQuery进行异步函数调用.我有一个缓慢的函数,遍历很多DOM元素,我希望浏览器在此函数运行时不会冻结.我想在调用慢速函数之前显示一个小指标,然后当慢速函数返回时,我想隐藏指标.我有以下内容:
$('form#filter', parentNode).submit(function() {
var form = $(this);
indicator.show();
var textField = $('input#query', form);
var query = jQuery.trim(textField.val());
var re = new RegExp(query, "i");
slowFunctionCall(); // want this to happen asynchronously; all client-side
indicator.hide();
return false;
});
Run Code Online (Sandbox Code Playgroud)
目前我提交表格并且指标未显示,浏览器冻结,然后slowFunctionCall完成.
编辑:我使用了Vivin的答案,特别是Sitepoint链接来获得以下解决方案:
var indicator = $('#tagFilter_loading', parentNode);
indicator.hide();
var spans = $('div#filterResults span', parentNode);
var textField = $('input#query', parentNode);
var timer = undefined, processor = undefined;
var i=0, limit=spans.length, busy=false;
var filterTags = function() {
i …Run Code Online (Sandbox Code Playgroud) IE6中的JavaScript多线程是否可行?
有没有第三方图书馆?
Javascript没有可见的线程(但是 - 工作线程即将到来,请参阅JavaScript和线程中的更多信息).
但是,它似乎确实有多个执行上下文似乎同时存在 - 独立,当您有多个Firefox Windows和多个Firefox/IE选项卡时.
如果页面上有多个iframe,则每个iframe都有自己的执行上下文,但它们具有共享数据.如果两个iframe位于同一个域中,则它们可以访问彼此的DOM并调用彼此的函数.然而,我无法在Google上找到调度模型的描述,即是否:
所以问题是:
谢谢!
我多次听过这种说法,但我个人认为这没有多大意义.我认为人们在实践中将JavaScript作为语言规范和JavaScript混淆(浏览器,节点等).当然,在大多数情况下,JavaScript是在单线程环境中执行的; 但AFAIK在语言规范中没有任何要求它.我认为这就像说Python被"解释",而实际上它完全是一个实现问题.
那么,说JavaScript是一种"单线程"语言是否准确?
setTimeout()很想知道是否会异步启动,我尝试了以下测试脚本:
function timedText() {
var x = document.getElementById("txt");
setTimeout(function() {
x.value = "1 second"
}, 1000);
setTimeout(function() {
x.value = "2 seconds"
}, 2000);
setTimeout(function() {
x.value = "3 seconds"
}, 3000);
while (true) {}
}Run Code Online (Sandbox Code Playgroud)
<p>Click on the button below. The input field will tell you when two, four, and six seconds have passed.</p>
<button onclick="timedText()">Display timed text</button>
<input type="text" id="txt">Run Code Online (Sandbox Code Playgroud)
果然,单击该按钮会导致浏览器挂起.
这告诉我,setTimeout()并没有一个单独的线程运行.
但在最近的一次采访中,采访者提出了另外的建议......这是否意味着setTimeout()依赖于浏览器/实现?
javascript ×11
web-worker ×2
asynchronous ×1
browser ×1
firefox ×1
forms ×1
function ×1
html5 ×1
java ×1
jquery ×1
safari ×1
settimeout ×1
url ×1