不确定我的逻辑是否完全不合适,或者只是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浏览器。第一个出现在最后一个出现的时间对我来说似乎很长。
答案 0 :(得分:1)
您正在使用AJAX获取 11个不同的HTML页面,并且每个人在 5到11秒之间计时考虑阻塞(使用我的连接。)如果您打算使用如果您将它与轻量级 Web服务一起使用,那么AJAX会更好。也就是说,创建一个仅使用JSON而不是HTML返回相关信息的Web服务。
我担心你的瓶颈在那里。
答案 1 :(得分:1)
不是为每辆汽车的页面触发ajax调用,而是为什么不启动一个ajax调用并获取所有汽车信息,然后使用jquery将数据添加到dom。
这样你只会有一个10秒+延迟。
虽然我会质疑为什么要花10秒才能从该页面获得回复。我猜它是导致问题的服务器端代码。数据库巨大吗?你有时间查询数据库吗?
就ajax而言,它很好。如果服务器端代码很快,那么即使进行100次ajax调用,页面也会更快地加载信息。