如何防止重複的 Ajax 請求

發布 科技 2024-05-20
2個回答
  1. 匿名使用者2024-02-11

    有很多方法可以做到這一點。

    直接將按鈕改為灰色,當請求響應時,在響應會話的**中啟用此按鈕["ajax_guid"隨機放乙個GUID值,當頁面載入時,放在頁面的隱藏域中,在進行AJAX請求時將這個GUID值傳送到伺服器,而在伺服器端,需要新增乙個過濾器來判斷它是否是AJAX請求(這一步是需要的,視情況而定), 然後確定請求的 GUID 和會話"ajax_guid"] 是一致的。判決後,將立即生成新的 guid 並將其放置在會話中["ajax_guid"](此步驟可根據需要使用,一般只要驗證成功,不會生成新的GUID,也不會重新生成驗證)。這是防止重複提交的好方法,但您還可以考慮其他事項。

    限制請求間隔,再次記錄會話,記錄請求的時間,判斷下乙個請求來臨時兩個請求之間的時間間隔是否滿足您的預期要求。

    各種各樣的事情等等,然後根據需要想出其他方法。

  2. 匿名使用者2024-02-10

    1.解決問題。

    有兩種方法可以解決這個問題:

    1.當連續發出多個請求,並且請求的 URL 位址相同時。 放棄所有以前的請求,只執行最後乙個請求。

    2.當連續發出多個請求,並且請求的 URL 位址相同時。 放棄所有後續請求,僅執行第乙個請求。

    第二,解決方案。

    1. 將 ajax 請求的非同步設定為 false

    AJAX(非同步型別:布林值。

    預設值:true。 預設情況下,所有請求都是非同步的。 如果需要傳送同步請求,請將此選項設定為 false。

    請注意,同步請求將鎖定瀏覽器,其他操作必須等待請求完成才能執行。

    2. 使用 jQuery AjaxPrefilter 中斷請求。

    由於第乙個計畫只是將國家從曲線中拯救出來的一種方式,它實際上無法解決上述問題。 因此,建議使用此方法。

    var pendingrequests =

    ajaxprefilter(function( options, originaloptions, jqxhr ) else

    var complete = ;

    function(jqxhr, textstatus)

    預過濾器是在每個請求和 $ajax() 來處理它們的預處理。

    options 是請求的選項。

    OriginalOptions 值作為提供給 AJAX 方法的未修改選項,因此,AJAXCorptions 設定中沒有預設值。

    jqxhr 是請求的 jqxhr 物件。

    上面的核心思想是維護乙個佇列,當乙個請求被傳送時,請求被排隊,當請求被響應時,它被從佇列中清除,這保證了任何時候只能傳送乙個相同的請求。

    侷限性:只有前台阻止了 ajax 請求的 jquery。 對於非 jQuery ajax 請求,它不起作用。

    因為它使用 jQuery ajaxprefilter 函式,所以它僅適用於 jquery ajax 請求。

    呼叫 abort 後,jquery 將執行 error 方法並丟擲 abort 異常訊息。 您可以通過以下方式區分此類異常。

相關回答
7個回答2024-05-20

多吃清單和消防食物。

25個回答2024-05-20

不要提交多份稿件。 許多投稿人希望同時審閱多本雜誌,總有一本可以通過。 發表多篇稿件是學術界的禁忌,請不要違反學術規範。 >>>More

24個回答2024-05-20

為了防止腫瘤的**和轉移,可以嘗試NK免疫**。

2個回答2024-05-20

如果乙個人出了什麼事,那是個人問題;

少數人出事,是領導問題; >>>More

13個回答2024-05-20

很難從手術中完全去除神經膠質瘤幹細胞,因此很容易**。 換句話說,它是難以避免的,如何預防它是神經膠質瘤的關鍵,也是神經膠質瘤的核心。 除非你使用生物刀技術來去除它們,否則它似乎是在提取腫瘤幹細胞的特徵,然後將它們提供給體內可以殺死腫瘤細胞的“防禦細胞”,以便它們能夠識別壞細胞並摧毀它們。 >>>More