相关疑难解决方法(0)

Web Workers处理AJAX调用 - 优化过度杀伤?

我正在使用一个代码来处理使用Web Workers的所有AJAX请求(如果可用).这些工作人员几乎只做XMLHttpRequest对象处理(没有额外的计算).工作人员创建的所有请求都是异步的(request.open("get",url,true)).

最近,我遇到了关于这段代码的几个问题,我开始怀疑是否应该花时间修复这个或者只是转储整个解决方案.

到目前为止,我的研究表明,此代码实际上可能会损害性能.但是,我无法找到支持这一点的任何可信来源.我的两个发现是:

  • 2年的jQuery功能建议使用Web worker进行AJAX调用
  • 这个问题似乎有点不同(在Web worker和AJAX调用中使用同步请求)

有人能指出我讨论这个问题的可靠来源吗?或者,是否有任何基准可以消除我的疑虑?

[ 编辑 ]当WebWorker也负责解析结果(JSON.parse)时,这个问题会变得更有趣.异步解析是否提高了性能?

javascript ajax asynchronous web-worker

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

关于Web worker中同步请求的意见

我想知道你对此有何看法.建议在Web worker中使用同步请求(XMLHttpRequest)?我能找到什么问题?

我一直在我的应用程序中测试这个,我没有发现任何问题.但是由于jQuery和AJAX的旧体验,我害怕这种同步行为.我的应用程序从数据库中的几个表中获取大量数据,这需要一些时间.对于从表中检索到的每一组数据,我需要立即处理它,以免过多地延迟整个过程.同时,用户正在与浏览器进行交互,因此可以阻止它,我认为网络工作者可以正常工作.你认为这是一个很好的解决方案吗?或者我应该尝试使用asynchronus请求?

谢谢.

javascript ajax xmlhttprequest web-worker

15
推荐指数
1
解决办法
7118
查看次数

XHR/setTimeout/Promise直到滚动停止在Chrome中才完成

在Chrome中,如果用户滚动所有XHR并且setTimeouts将被延迟,直到滚动停止并且我需要一个解决方法.此博客文章中描述了行为.虽然这个功能有助于移动滚动,但对于无限滚动来说却是灾难性的,这正是我想要做的.

发生这种情况的证据:

  • 所有其他浏览器都能正常工作,Chrome会显示一个空白屏幕,直到用户停止滚动.

  • 网络面板将显示所有请求,pending直到滚动结束,然后它们全部完成.

  • 把它放在一个片段中,运行它然后立即开始滚动.滚动完成后才会调用setTimeout.

var p = new Promise(function (resolve) {
    setTimeout(function () {
        console.log('resolving');
        resolve();
    }, 1000)
});

p.then(function () {
    console.log('DONE!!');
})
Run Code Online (Sandbox Code Playgroud)

javascript scroll google-chrome xmlhttprequest settimeout

15
推荐指数
2
解决办法
1270
查看次数

最佳服务器API和客户端Javascript交互方法?

目前,我正在使用setTimeout()暂停一个for巨大的列表循环,以便我可以添加一些样式到页面.例如,

例如:http://imdbnator.com/process?id = wtf& redirect = false

我使用setTimeOut:

setTimeout()用来添加图像,文本和css进度条(为什么Progress Bar不会像Text一样动态变化?2).

显然,正如您所看到的那样,用户浏览页面并将鼠标悬停在几张图片上非常痛苦.它变得非常迟钝.这有什么解决方法吗?

我的FOR循环:

每个for循环在后台向PHP API发出ajax请求.这肯定会让我在那里付出一定的效率,但是所有其他网站如何以如此优雅的方式拉开它?我的意思是,我看到网站显示了一个很好的加载图像,在发出API请求时没有用户干扰.虽然我尝试做类似的事情,但我set a time-out每次都有.

他们是否使用了更好的服务器 - 客户端交互语言,比如我听过的node.js

此外,我想到了一些替代方案,但遇到了其他并发症.如果您能帮助我解决这些可能的替代方案,我将不胜感激.

方法1:

我没有通过jQuery对我的PHP API进行AJAX调用,而是完全可以完成一个完整的服务器端脚本.但是,我遇到的问题是我无法创建一个好的客户端页面(如我当前页面中)更新进度条并在处理完每个列表项后添加动态图像.或者这可能吗?

方法2 :(已编辑)

就像下面的有用答案一样,我认为最大的问题是服务器API和客户端交互.他建议的Websockets看起来很有希望.它们必然会比setTimeout更好吗?是否有任何重大的时间差异让我说我将当前的1000个AJAX请求替换为websocket?

此外,如果除了websocket之外还有其他任何东西比AJAX调用更好,我将不胜感激.

专业网站如何通过流媒体服务器和客户端交互来解决问题?

编辑1:请解释专业网站(例如http://www.cleartrip.com,当您请求航班详细信息时)如何在处理服务器端时提供顺畅的客户端.

编辑2:正如@Syd建议的那样.这是我正在寻找的东西.我认为我当前的客户端和服务器交互有很多延迟.Websockets似乎是一个解决方案.除了标准的AJAX之外,还有哪些其他/最佳方法可以改善服务器cleint交互?

javascript css php ajax jquery

4
推荐指数
1
解决办法
665
查看次数