我正在 wamp 服务器上使用 php 和 jquery 构建 rss 提要阅读器。
在页面加载时,我有网站列表,
<ul class='list'>
<li>Site1 <input type='hidden' value='http://site1.rss/' /></li>
<li>Site2 <input type='hidden' value='http://site2.rss/' /></li>
<li>Site3 <input type='hidden' value='http://site3.rss/' /></li>
</ul>
为了从“getFeed.php”页面获取提要,我使用 jquery 代码,
$('.list li').live('click', function() {
var url = $(this).find('input').val();
$.post("getFeed.php",
{url:url},
function(data) {
$('.feed').html(data);
});
});
这段代码就像一个魅力。现在,如果我在第一个站点的请求完成之前单击另一个站点,则会出现问题。
那时如果第一个站点的响应很慢,那么我应该从第二个站点得到结果。但是,当第一个站点响应较晚时,结果将更改为第一个站点。
问题类似于 [question]: Abort Ajax requests using jQuery
我已经尝试过此代码,但无法正常工作
$(document).ready(function() {
var xhr;
$('.list li').live('click', function() {
xhr.abort();
alert("testing flag");
var url = $(this).find('input').val();
xhr = $.post("getFeed.php",
{url:url},
function(data) {
$('.feed').html(data);
});
});
})
但是,此代码无法发送请求。因此,我在 xhr.abort() 行之后放置了一个测试警报标志。但警报也不起作用。可能是 xhr.abort() 中的问题;线。