0

不确定我这里的逻辑是否不正常,或者这只是 ajax 的本质。我会尽力解释。我有一个页面可以提取一些信息(包含在 div 中的文本,其 id 为序言),然后将其附加到当前页面上的 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。第一个出现到最后一个出现的时间对我来说似乎很长。

4

2 回答 2

1

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

恐怕你的瓶颈在那里。

于 2013-02-13T11:34:46.397 回答
1

与其对每辆汽车的页面触发 ajax 调用,不如您触发一个 ajax 调用并获取所有汽车信息,然后使用 jquery 将数据添加到 dom。

这样你只会有一个 10 秒以上的延迟。

虽然我会质疑为什么需要 10 秒才能从该页面获得回复。我猜它是导致问题的服务器端代码。数据库很大吗?您是否对数据库查询进行了计时?

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

于 2013-02-13T11:37:28.473 回答