首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >$.getJSON慢

$.getJSON慢
EN

Stack Overflow用户
提问于 2012-03-04 08:05:28
回答 2查看 3.3K关注 0票数 0

我使用$.getJSON来提取对象的清单(100个条目,不是一个大集合),但是它需要8-10秒的时间来调用XHR。

想知道我是否遗漏了什么或者我可以做些什么来加速我的计划吗?

EN

回答 2

Stack Overflow用户

发布于 2012-03-04 08:33:49

在整个请求过程中,有很多事情可能出错。

下面是一些值得注意的领域,您可以检查瓶颈,从请求到响应。

  • Is您的浏览器/系统/硬件可以吗?

由于这个操作是JavaScript,所以像IE6这样的旧浏览器、像上网本这样的低性能系统,甚至是在给定时间运行太多应用程序的弱设置系统,都可能受到影响。

  • Is浏览器立即执行任务?还是延迟了?

忙碌的JavaScript是这里的罪魁祸首。JavaScript是单线程的,太多的操作会使浏览器陷入困境,并且可能会延迟排队的任务的运行。如果您的页面包含太多的JavaScript插件,或者包含编码不当的代码,其中一些代码甚至可能使用同步操作,就会出现这样的情况。

  • Could是PHP/JSP/其他一些服务器端语言

有可能是的。例如,PHP可能是每个请求的线程,但是它的代码的操作是同步的。如果一行PHP的执行时间太长,这就是延迟的一部分。在这一行完成之前,服务器将永远不会响应。

  • Do您使用多个/嵌套的SQL查询?

深入服务器,多个和/或嵌套的SQL查询,特别是对于常用的操作,可能并将导致进一步的延迟。建议只将查询限制在应该获取的内容上,而不是整个记录。如果无法避免嵌套查询,请尝试另一种检索数据的方法。

  • Unoptimized函数调用

这适用于服务器端和客户端脚本。过度作业也可能是延误的原因。确定过度冗余的代码并合并/缩短它们。例如,在JS中,简单的条件分配操作可以用三元操作来完成。。

  • Looping太多了?

过度循环也是造成延误的常见原因之一。SQL中的一个错误是检索所有行并在PHP中计数它们,而不是在SQL中使用内置的COUNT()。错误有两重,您从SQL返回了太多的数据,其次是在PHP.中对太多项进行计数/循环。

  • Are你要拨号还是什么?

带宽是必不可少的,因此尺寸很重要。因此,将返回数据限制在所需的范围内。开发人员喜欢JSON的主要原因是与XML和标记内容相比,JSON的大小更小。为此,还可以使用gzip compression.压缩返回数据。

票数 3
EN

Stack Overflow用户

发布于 2012-03-04 08:18:05

它牵涉到许多事情。我认为两个主要的瓶颈是

  • 生成JSON的服务器脚本可能会导致问题或花费很长的进程时间来生成输出。
  • 您的页面上有太多的脚本,比如效果或滑块,getJSON正在运行慢

在大多数情况下,第一个是沉默的杀手。为了测试脚本,向页面发出一个getJSON请求,它只显示JSON字符串,不需要任何处理。像这样很轻的东西

代码语言:javascript
复制
{ "test" : "value" }

在PHP中

回显{“测试”:“值”};

并向此页面发出getJSON请求,并检查脚本是否运行得很快。如果它是快速的,问题是在您的服务器脚本。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9553329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档