1. 程式人生 > >form表單提交與 ajax提交的區別

form表單提交與 ajax提交的區別

1、使用場景:
安全性都一樣,都是傳送的http協議。安全性與提交檔案的業務處理(格式檢測,防注入)有關,與提交方式無關。
一般登入用表單提交,點選提交觸發submit事件,一般會 使頁面發生跳轉,頁面的跳轉等行為的控制往往在後端,後端控制頁面的跳轉及資料的傳遞;但是某些時候不希望頁面跳轉,或者說想要將控制權放在前端,通過js來操作頁面的跳轉或資料變化,一般這種非同步操作,都會使用ajax。
但是Ajax會有個隱藏的問題,即瀏覽器不儲存密碼,不符合使用者習慣。理想的方式:建立隱藏的iframe,把form標籤的target指向iframe,然後檢測iframe的狀態。
2、比較:
(1)ajax在提交、請求、接收時,都是非同步進行,網頁不需要重新整理,只重新整理頁面區域性,不關心也不影響頁面其他部分的內容。
Form提交則是新建一個頁面,哪怕是提交給自己本身的頁面,也需要重新整理,為了維持頁面使用者對錶單的狀態改變,要在控制器和模板之間傳遞更多引數以保持頁面狀態。
(2)ajax提交時,是在後臺新建一個請求。
Form卻是放棄本頁面,然後再請求。
(3)ajax必須要用js來實現,存在除錯麻煩、瀏覽器相容問題,而且不啟用js的瀏覽器,無法完成操作。
Form表單是瀏覽器自帶的,無論是否開啟js,都可以提交表單。
(4)ajax在提交、請求、接收時,整個過程都需要使用程式來對其進行資料處理。
Form表單提交,是根據表單結構自動完成,不需要程式碼干預。用submit提交。
3、其他方面:
關於輸入內容的校驗,ajax可以在獲取到元素內容用程式判斷;form表單的屬性中有校驗的欄位,easyui,jeecg等中都封裝,使用者只需新增正則表示式的校驗規則。
4、例:
(1)使用form提交

login test

使用者名稱:

密 碼:

12345678910111213141516

(2)使用ajax提交

login test

使用者名稱:

密 碼:

12345678910111213141516171819202122232425262728293031323334353637