1、表單和ajax提交淺析在網(wǎng)頁中常用的數(shù)據(jù)提交提交有兩種:表單和ajax提交。下面將簡單介紹一下它們各自的特點及優(yōu)缺點。表單在網(wǎng)頁中主要負責數(shù)據(jù)采集功能。一個表單有三個基本組成部分:表單標簽:
用于申明表單,定義采集數(shù)據(jù)的范圍。這里面包含了處理表單數(shù)據(jù)所用CGI程序的URL以及數(shù)據(jù)提交到服務器的方法。語法:
2、m_uploader">屬性解釋:Id是表單的標識符,用于區(qū)分不同表單;method=get或post指明提交表單的HTTP方法.可能的值為:post:POST方法在表單的主干包含名稱/值對并且無需包含于action特性的URL中.get:不贊成。GET方法把名稱/值對加在action的URL后面并且把新的URL送至服務器.這是往前兼容的缺省值.這個值由于國際化的原因不贊成使用.action=url指定用來處理提交表單的格式.它可以是一個URL地址(提交給程式)或一個電子郵件地址.在BCM 11AC項
3、目中為broadcom.c文件中的mime_handlers表里的一個接口。enctype屬性為編碼方式,常用有兩種:application/x-www-form-urlencoded和multipart/form-data,默認為application/x-www-form-urlencoded,不能用于文件上傳;只有使用了multipart/form-?data,才能完整的傳遞文件數(shù)據(jù),且傳遞的數(shù)據(jù)為二進制,用request就會傳遞不成功。target="..."指定提交的結(jié)果文檔顯示的位置:_blank:在一
4、個新的、無名瀏覽器窗口調(diào)入指定的文檔;_self:在指向這個目標的元素的相同的框架中調(diào)入文檔;_parent:把文檔調(diào)入當前框的直接的父FRAMESET框中;這個值在當前框沒有父框時等價于_self;_top:把文檔調(diào)入原來的最頂部的瀏覽器窗口中(因此取消所有其它框架);這個值等價于當前框沒有你框時的_self.表單域:包含了文本框、密碼框、隱藏域、多行文本框、復選框、單選框、下拉選擇框和文件上傳框等,用于采集用戶的輸入或選擇的數(shù)據(jù)。提交時瀏覽器將為我們把表單里的數(shù)據(jù)解析為名/值對的形式。所以name屬性必須唯一。
5、表單按鈕:包括提交按鈕、復位按鈕和一般按鈕;用于將數(shù)據(jù)傳送到服務器上的CGI腳本或者取消輸入,還可以用表單按鈕來控制其他定義了處理腳本的處理工作。代碼格式:。提交、復位、一般的type分別為:submit/reset/button。Ajax提交是通過js來提交請求,請求與響應均由js引擎來處理,頁面不會刷新,用戶感覺不到實際上瀏覽器發(fā)出了請求。采用jquery的ajax,具有更好的封裝性,簡單易用。語法:$.post(url,[dat
6、a],[callback],[type]);參數(shù)解釋:urlString發(fā)送請求地址。data(可選)Map待發(fā)送Key/value參數(shù)。callback(可選)Function發(fā)送成功時回調(diào)函數(shù)。type(可選)String返回內(nèi)容格式,xml,html,script,json,text,_default。下面列出兩種提交方式的幾點區(qū)別:1.Ajax在提交、請求、接收時,都是異步進行的,網(wǎng)頁不需要刷新;Form提交則是新建一個頁面,哪怕是提交給自己本身的頁面,也是需要刷新的;2.Ajax在提交時,是在后臺新建一個
7、請求;Form卻是放棄本頁面,而后再請求;3.Ajax必須要使用JS來實現(xiàn),不啟用JS的瀏覽器,無法完成該操作;Form卻是瀏覽器的本能,無論是否開啟JS,都可以提交表單;4.Ajax在提交、請求、接收時,整個過程都需要使用程序來對其數(shù)據(jù)進行處理;Form提交時,卻是根據(jù)你的表單結(jié)構(gòu)自動完成,不需要代碼干預。有時候我們需要用表單提交,但又不想刷新頁面怎么辦?下面將介紹一個提交表單但不刷新頁面的方法:在頁面中定義一個隱藏的div和iframe8、one;">??????