Jquery ajax调用很多页面非常慢

时间:2013-02-13 11:25:36

标签: jquery

不确定我的逻辑是否完全不合适,或者只是ajax的本质。我会试着解释一下。我有一个页面,它提取了一些信息(包含在带有前导码id的div中的文本),然后将其附加到当前页面上的div。

这是页面: http://www.cresser.co.uk/cresser/new-cars/

在页面完全加载之前不会触发该函数,我知道这会导致进一步的延迟,我正在研究。

但是你会看到它是车辆模型框中出现的红色文字。很慢。

这是代码,就像我说的那样,我可能完全不合逻辑。

$('.indexList .item').each(function(){

var tempPath = $(this).attr('class').replace('item ', '').replace(' myPointer', '');

    $.ajax(
        {
            type: 'GET',
            async: true,
            url:  './' + tempPath,
            success: function(data) {
                $(data).find('#preamble').each(function(){
                $('.item.' + tempPath + ' .strapLine').append($(this).text());
                $('.item.' + tempPath + ' .strapLine').fadeIn('fast');
            });
        }
    }); 
}); 

是不是我正在尝试做的是使用ajax愚蠢,还是有办法加速这段代码?

感谢。

编辑。只是为了澄清,这不是整个页面的加载速度,我现在很烦恼......这是加载红色文本的函数的速度。 IE浏览器。第一个出现在最后一个出现的时间对我来说似乎很长。

2 个答案:

答案 0 :(得分:1)

您正在使用AJAX获取 11个不同的HTML页面,并且每个人在 5到11秒之间计时考虑阻塞(使用我的连接。)如果您打算使用如果您将它与轻量级 Web服务一起使用,那么AJAX会更好。也就是说,创建一个仅使用JSON而不是HTML返回相关信息的Web服务。

我担心你的瓶颈在那里。

答案 1 :(得分:1)

不是为每辆汽车的页面触发ajax调用,而是为什么不启动一个ajax调用并获取所有汽车信息,然后使用jquery将数据添加到dom。

这样你只会有一个10秒+延迟。

虽然我会质疑为什么要花10秒才能从该页面获得回复。我猜它是导致问题的服务器端代码。数据库巨大吗?你有时间查询数据库吗?

就ajax而言,它很好。如果服务器端代码很快,那么即使进行100次ajax调用,页面也会更快地加载信息。