相关疑难解决方法(0)

如何从GET参数中获取值?

我有一个带有一些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执行此操作?

javascript url

1255
推荐指数
34
解决办法
197万
查看次数

Web工作者没有单独的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文件?

javascript web-worker

279
推荐指数
9
解决办法
7万
查看次数

为什么JavaScript不支持多线程?

这是一个刻意的设计决定还是我们当前浏览器的问题,将在未来版本中得到纠正?

javascript browser multithreading

255
推荐指数
7
解决办法
13万
查看次数

171
推荐指数
3
解决办法
4万
查看次数

165
推荐指数
6
解决办法
18万
查看次数

防止长时间运行的javascript锁定浏览器

我有JavaScript执行大量的计算以及从DOM读取/写入值.该页面非常庞大,因此通常最终会锁定浏览器长达一分钟(有时更长时间使用IE),CPU占用率为100%.

是否有任何资源可以优化JavaScript以防止这种情况发生(我能找到的是如何关闭Firefox长时间运行的脚本警告)?

javascript

55
推荐指数
2
解决办法
4万
查看次数

jQuery异步函数调用,没有AJAX请求

这看起来很傻,但我找不到如何使用不涉及某些服务器端请求的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)

javascript forms jquery asynchronous function

41
推荐指数
3
解决办法
6万
查看次数

IE6中的JavaScript多线程?

IE6中的JavaScript多线程是否可行?

有没有第三方图书馆?

javascript multithreading

8
推荐指数
1
解决办法
615
查看次数

Javascript的"多执行上下文"如何工作?

Javascript没有可见的线程(但是 - 工作线程即将到来,请参阅JavaScript和线程中的更多信息).

但是,它似乎确实有多个执行上下文似乎同时存在 - 独立,当您有多个Firefox Windows和多个Firefox/IE选项卡时.

如果页面上有多个iframe,则每个iframe都有自己的执行上下文,但它们具有共享数据.如果两个iframe位于同一个域中,则它们可以访问彼此的DOM并调用彼此的函数.然而,我无法在Google上找到调度模型的描述,即是否:

  • 并行/先发制人,在这种情况下 - 你可以暂时中止吗?任何形式的互斥?
  • 合作,在这种情况下 - 如何屈服于另一个背景?
  • 非重叠 - 即,主框架中的事件处理程序必须在iframe中的事件处理程序被调用之前返回(反之亦然)?

所以问题是:

  • 是否有保证的上下文切换模型?
  • 如果没有,那么主流的上下文切换模型是什么?
    • 似乎Firefox和IE在同一个选项卡上下文之间有一个不重叠的时间表,并且在同一个进程中的不同选项卡/窗口之间合作 - 但我不确定.
    • Chrome将系统调度程序用于不同的选项卡(可能使用多个核心,这些核心位于并行/抢占组中,但我不知道它在同一选项卡中用于多个帧.
    • 我不知道Safari或Opera.

谢谢!

javascript safari firefox internet-explorer google-chrome

7
推荐指数
1
解决办法
712
查看次数

说JavaScript是一种"单线程"语言是否准确?

我多次听过这种说法,但我个人认为这没有多大意义.我认为人们在实践中将JavaScript作为语言规范和JavaScript混淆(浏览器,节点等).当然,在大多数情况下,JavaScript是在单线程环境中执行的; 但AFAIK在语言规范中没有任何要求它.我认为这就像说Python被"解释",而实际上它完全是一个实现问题.

那么,说JavaScript是一种"单线程"语言是否准确?

javascript

6
推荐指数
2
解决办法
907
查看次数

setTimeout()是否在单独的线程上运行?

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 settimeout

4
推荐指数
2
解决办法
1167
查看次数