ajax放慢页面

时间:2011-01-13 01:55:10

标签: php javascript ajax curl

我有一个带有ajax的网页。 Ajax从其他网站加载一些数据,这需要一些时间。在“加载”期间,我的网站对用户输入(转到其他页面等)响应不佳。在有人喊叫之前 - 是的,我知道,这是因为ajax。 :)

我的问题是 - 有没有办法限制ajax带宽?快速网站是我的首要任务,在后台加载数据是次要的。

所以,如果我有一个调用php(ajax)的javascript,然后php使用cUrl获取一些数据并将其返回给javascript(实际代码是很长时间在这里发布,没有人会肯定地阅读它: D)有没有办法阻止该机制阻止我的页面直到它完成?

2 个答案:

答案 0 :(得分:1)

问题是什么减慢了你的页面?这可能是yoyur描述中的几件事。

ajax要记住以下几点:

1:大多数浏览器每个域只会同时执行两次xhr请求

2:如果调用xhr的结果需要解析并且解析很重,就像旧浏览器中的eval'ing json一样,它会在数据解析发生时对浏览器产生冻结效应(js是单线程本质上,除非你用html5计算网络工作者

3:如果ajax的结果强制浏览器由于dom注入而重新渲染页面,渲染会感觉很慢并且在旧浏览器中冻结浏览器。

4:如果你有带宽限制,尝试在浏览器完成其他工作时运行你的xhrs,例如,等待页面加载的domReady

答案 1 :(得分:0)

查找Javascript源文件的异步加载,我希望您已经在使用异步XHR调用。有关示例用法,请参阅Google Analytics跟踪文档:

<script type="text/javascript">  (function() {
    var ga = document.createElement('script');     
    ga.type = 'text/javascript';
    ga.async = true;
    ga.src = ('https:'   == document.location.protocol ? 'https://ssl'   
            : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(ga, s);
    })();
   </script>

http://code.google.com/apis/analytics/docs/tracking/asyncUsageGuide.html