3

リモートファイルからデータを取得し、ページのdivに表示するAJAXリクエストがあります。AJAXが呼び出され、ユーザーがリンクの上にマウスを置くとデータ付きのdivが表示され、マウスをリンクから外すと消えます。divはすぐに表示されますが、マウスを移動すると、マウスを移動してからdivを非表示にするまでに約5秒の遅延があります。

AJAXリクエストを削除すると、divがすぐに非表示になるため、Hide関数をブロックするAJAXリクエストと関係があると思います。

マウスがリンクから削除されたときにAJAXを中止、強制終了、または無視して、何があってもdivを非表示にするためにできることはありますか?

これが私がこれまでに持っているコードです:

$(function(){

var showPopup = function(){
    $.ajax({
        type: "GET",
        url: "/process.cfm",
        data: "id=" + 1,
        success: function(data){
            $(".profilePopup").html(data);

            if ($(data).find(".profileResult").length) {
                var text = $(data).find(".profileResult").html();
                $(".profilePopup").html(text);
            }
        }
    });

    $(".profilePopup").show();
}

var hidePopup = function(){
    $(".profilePopup").hide();
}

$("#username").mouseover(showPopup);
$("#username").mouseout(hidePopup);
});
4

3 に答える 3

3

これを試して:

 var xhr = $.ajax({
        type: "POST",
        url: "some.php",
        data: "name=Somename",
        success: function(msg){
           alert( "Data Saved: " + msg );
        }
    });

    //kill the request
    xhr.abort()
于 2012-04-12T11:54:29.207 に答える
0

jxhrオブジェクトを使用して、ajaxリクエストを中止できます。

http://api.jquery.com/jQuery.ajax/#jqXHR

このようなもの :

var jxhr_object = $.ajax({
    url: "some.php",    
    success: function(){
       do something
    }
});

//kill the request
jxhr_object.abort()
于 2012-04-12T11:52:00.093 に答える
0
var xhr = $.ajax({
    type: "GET",
    url: "/process.cfm",
    async: true,
    data: "your data",

    success: function(msg){
       alert( "Data Saved: " + msg );
    }
});

//kill the request
xhr.abort()

これにより、ブラウザがフリーズすることはありません。

非同期:true、

于 2014-04-13T11:41:07.433 に答える