jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jQuery ajax速度与直接访问速度大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个使用Pyramid框架编写的Web服务和使用jQuery和jQuery Mobile编写的前端.我注意到,使用Ajax方法完成一些Ajax调用需要大约5到10倍的时间才能直接转到浏览器中的URL.

我的Ajax代码看起来像这样,为简洁起见缩短了:

$.ajax({
      url:address,dataType:'jsonp',crossDomain: true,success: function(data)
      {
          Parsing and other stuff that takes some time...
      }});

现在,我一次点击其中的10个到不同的URL,这可能是响应速度较慢的原因,但如果我一次只发射一个,它仍然慢大约3倍. (30ms vs 90ms).我曾尝试在Pyramid中使用女服务员,以及mod_wsgi(1个进程,4个线程),结果大致相同.

我的问题是:开销来自哪里?金字塔?网络服务器? jQuery的? JQM?阿贾克斯()?如果有什么要求减少请求时间,我该怎么办?

编辑:在JSON和JSONP之间切换影响不大,但进一步的测试表明,从测试到测试的时间变化很大(50ms到100ms).但是,通过浏览器直接访问服务始终为30毫秒/ – 1毫秒.

我使用Firebug,Chrome Web Dev工具和fiddler对此进行了测试,结果类似.在fiddler中复制其中一个请求时,我得到的结果与在浏览器中直接访问资源的结果相似.

这是一个运行Firebug的屏幕截图,我有意通过每次运行5次调用来降低速度:http://s16.postimage.org/n6t5z1ow5/ajax_Cap.png希望能提供更多提示.灰色是“阻挡”,紫色是“等待”.

解决方法

我猜这个问题是crossdomain / jsonp选项 – 因为这是一个’假的’ajax请求来绕过浏览器安全限制.

JQuery在这里做的是创建一个脚本元素,其源设置为您在调用中提供的URL(以及其他一些东西,将返回的数据包装在函数调用中),因此几乎可以肯定存在一些奇怪/缓慢.如果我没记错的话,浏览器实际上会阻止脚本执行,同时它也会加载脚本块…?

您可以尝试通过在服务中包含设置为“*”(允许所有访问权限)的“Access-Control-Allow-Origin”标头并取出所有“跨域”内容解决此问题.

大佬总结

以上是大佬教程为你收集整理的jQuery ajax速度与直接访问速度全部内容,希望文章能够帮你解决jQuery ajax速度与直接访问速度所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: