2011-08-21 245 views
1

可能有一些情況下,您的請求需要很長時間,因爲您的客戶端Internet連接或您的服務器 連接的某些問題的 。如此以來,客戶不希望等待他點擊阿賈克斯 鏈路上再次,再次將請求發送到服務器,弄亂 如下:在瀏覽器中我們網站的如何在第一次調用獲得響應之前再次調用第一個Ajax請求?

  1. 渲染,因爲我們給額外 加載到瀏覽器。
  2. 如果第二次請求正確處理和你表明用戶 的頁面,然後從第一 請求一起錯誤信息出現(話說請求超時),它上面裝載的正確 內容和亂用用戶閱讀正確的內容。

如果Ajax函數被調用兩次,我想停止第一個Ajax響應。我該怎麼做呢?

+0

請在發佈之前進行拼寫檢查。另外,您可能希望在發佈之前閱讀您的問題。 – Nivas

回答

4

,所以我想停止第一Ajax響應,如果阿賈克斯函數被調用 兩次

你真正想要的是防止第二次請求時,第一請求正在進行中。

例如,您可能必須將Save按鈕更改爲Saving...,將其禁用(並添加一點進度輪),以向用戶提供實時反饋。 (Facebook做到這一點)

關鍵是愛給用戶反饋。如果用戶對發生的事情無能爲力,他們會認爲沒有任何事情發生。

你可能要檢查該操作爲何正在長

  • 如果這是一個複雜的/耗時的操作,比如,說一個報告生成或文件上傳,進度條應該做
  • 如果這是因爲客戶端的互聯網連接,請提前說出,例如Gmail:您的互聯網連接速度較慢,而且該網站可能很慢。更好的是,提供一個fallback選項,少用/不用Ajax。
  • 你說因爲我們給瀏覽器增加了額外的負載:這有點可疑。除非您提供大量的HTML來呈現,否則您不會向瀏覽器提供額外的加載。僅在瀏覽器上使用Ajax進行小型更新。如果您希望發生重大變化,您可能需要重新加載頁面。
+0

這正是我的團隊用我們的網絡應用程序所做的,如果他們必須等待(罕見)禁​​用並顯示「正在工作」通知。好建議。 –

0

如何看待你使用某種形式的JavaScript開始你有一個隱藏或禁用在講話莊園直到頁面請求的鏈接已經遵循。例如,您可以讓請求的Ajax等待第二個變量,該變量將啓用該鏈接,以便用戶可以點擊它。但是,直到該變量從原始AJAX請求收到它禁用點擊,然後如果它被點擊它再次禁用,並等待相同的變量再次回來。

想想一些開發人員如何禁用表單上的提交按鈕,以便用戶無法雙擊提交表單。這裏概念的相同概念。

相關問題