Ruby on rails 在Rails 3中使用Ajax更新分部太慢

Ruby on rails 在Rails 3中使用Ajax更新分部太慢,ruby-on-rails,ajax,ruby-on-rails-3,performance,partials,Ruby On Rails,Ajax,Ruby On Rails 3,Performance,Partials,我最近在以下网站上打开了一个帖子: 实际上,多亏了Ogz的向导,一切都正常工作了,但当我在两个彼此远离的项目之间移动鼠标时,速度非常慢,因为XMLHTTPRequest是为这两个项目之间的每个项目发送的 我考虑过,如果mouseenter和mouseleave之间的间隔低于阈值,则中止请求,但这没有帮助 我还尝试添加一个计时器来触发接近“过期时间”的请求,这样,如果相同的时间间隔太小,但再次失败,请求就没有时间被响应 代码如下: var timeStart, timeEnd; $("div.sh

我最近在以下网站上打开了一个帖子:

实际上,多亏了Ogz的向导,一切都正常工作了,但当我在两个彼此远离的项目之间移动鼠标时,速度非常慢,因为XMLHTTPRequest是为这两个项目之间的每个项目发送的

我考虑过,如果mouseenter和mouseleave之间的间隔低于阈值,则中止请求,但这没有帮助

我还尝试添加一个计时器来触发接近“过期时间”的请求,这样,如果相同的时间间隔太小,但再次失败,请求就没有时间被响应

代码如下:

var timeStart, timeEnd;
$("div.show_item").mouseenter(function(event){
    timeStart = (new Date()).getTime();
    var id = $(this).attr('data');
    var url = "/item/list?id="+id;
    var data = $(this).serialize();
    setTimeout(xhr = $.post(url, function(response_data){$("#item_details").html(response_data)}),290);
    return false;
}).mouseleave(function(event){
    timeEnd = (new Date()).getTime();
    if(timeEnd - timeStart < 300)
        xhr.abort();
});
var timeStart,timeEnd;
$(“div.show_item”).mouseenter(函数(事件){
timeStart=(新日期()).getTime();
var id=$(this.attr('data');
var url=“/item/list?id=“+id;
var data=$(this.serialize();
setTimeout(xhr=$.post(url,函数(响应数据){$(“#项目详细信息”).html(响应数据)}),290);
返回false;
}).mouseleave(功能(事件){
timeEnd=(新日期()).getTime();
如果(时间结束-时间开始<300)
xhr.abort();
});

提前感谢您的帮助。

我们讨论了多少项,ajax操作有多复杂?如何使用睡眠/启动而不是启动/中止?谢谢您的回复。项目的数量变化很大,但我认为从一个项目到下面的5个项目已经相当缓慢了。我认为ajax不是很复杂。如果您想查看,它将显示在链接的帖子中。如果我进行睡眠/启动,如何发送新项目的信息,而不是它开始睡眠时的信息?如果这个人直接在正确的项目上,又会怎样?他将不得不等到函数唤醒。