2009-06-10 49 views
1

我正在設置一個註冊頁面,我主要使用PHP來驗證數據。使用jquery vs php來減少負載

我意識到使用客戶端驅動的語言進行某些驗證會減少服務器的工作量。 我對jquery沒有多少知識,但是我正在尋找能夠確定電子郵件的正確語法的代碼(例如,'@'和沒有有趣的字符)。

此外,有在jQuery的功能,每一個時間,某事件後(上點擊,就KEYUP)它瓶坯PHP腳本,沒有重裝顯示結果?我正在尋找一些能夠讓用戶對更復雜的功能(例如查找電子郵件的DNS以確保它的真實性,檢查用戶名是否存在等)的快速反饋。

有人可以指點我嗎?到這個資源?

回答

9

有jQuery的一個非常廣泛的應用驗證插件,你可以在這裏找到:

http://plugins.jquery.com/project/validate

它包含了內置的許多「共同」的驗證規則,並可以添加你自己的。電子郵件是默認的。

但總是記得在服務器端始終驗證。您可以添加客戶端驗證以提高響應能力,但請記住,惡意用戶可以輕鬆繞過任何JavaScript驗證。

17

應該指出,客戶端驗證不應該依賴,但應該存在以提高用戶體驗。您必須在服務器上執行驗證,因爲客戶端代碼很容易繞過。

+1

當然,如果沒有服務器驗證,你永遠不應該去。但是,有了客戶端後,通常可以更容易地向用戶指出錯誤,並使頁面更易於使用。 – 2009-06-10 17:14:12

+0

+1 *永遠* *永遠* *永遠*依賴任何來自黑暗的一面。它不可信。 – 2009-06-10 17:21:45

+0

值得注意的是,如果數據驗證例程遇到麻煩/性能下降,您應該對這些例程進行概要分析並在那裏找到問題,因爲驗證通常不是一個「昂貴」的任務。 – 2009-06-10 19:27:10

0

您需要驗證PHP和js。我看到一些地方/仍在使用iE5的人,在這些情況下,我不會相信js。

1

與答案TM提供 - 驗證插件,並始終驗證服務器端。

如何做一個點擊事件,AJAX到服務器,然後顯示一個消息:

$("a.dnscheck").click(function() { 

    $.get('http://blah.com/dnscheck.php', 
      { 'email' : $("input.email").val() }, 
      function(data) { 
       //called on ajax response 
       if(data == 'valid') { 
        //update dom with ok message 
       } else { 
        //update dom with bad email message 
       } 

      }); 
}); 

http://docs.jquery.com/Ajax如果你想什麼更復雜。