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);
});
});
このコードは魔法のように機能しています。最初のサイトのリクエストが完了する前に、別のサイトをクリックすると問題が発生します。
その時、最初のサイトの応答が遅い場合は、2 番目のサイトから結果が得られます。しかし、最初のサイトの応答が遅れると、結果は最初のサイトに変わります。
質問は [質問] に似ています: jQuery を使用して Ajax リクエストを中止する
私はすでにこのコードを試していますが、機能していません
$(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() 行の後にテスト アラート フラグを 1 つ追加しました。しかし、アラートも機能していません。xhr.abort(); に問題がある可能性があります。ライン。