-------------------ajax: 數(shù)據(jù)交互----------------------
表單form ?用戶體驗(yàn)非常差 ? 流量地址名記得寫(xiě)全准颓。
表單的三要素:1 action ?告訴數(shù)據(jù)提交到哪里; 2 name ? 數(shù)據(jù)的名字; 3 value ? 值
--------------------服務(wù)器: ?集成環(huán)境 ?wamp : php+mysq
l-------------緩存:瀏覽器對(duì)同一個(gè)地址 只會(huì)訪問(wèn)一次哈蝇。解決: 添加隨機(jī)因子1 隨機(jī)數(shù) ? Math.random();2 添加時(shí)間戳 ?new Date().getTime();
-------------------編碼: ?保證所有文件都是utf-8編碼---eval: 把字符串代碼轉(zhuǎn)換成js可以執(zhí)行的代碼--json轉(zhuǎn)字符串: JSON.stringify--------------字符串轉(zhuǎn)json:------------------------ 1 eval ?—— 注意必須加括號(hào) 例如:eval("("+str+")") ? str是來(lái)自后臺(tái)的json格式字符串 "{a:15,b:5}" ?后臺(tái)不會(huì)有人給你加()的,所以一定要記得自己加攘已。原因在于:eval本身的問(wèn)題炮赦。 由于json是以”{}”的方式來(lái)開(kāi)始以及結(jié)束的,在JS中样勃,它會(huì)被當(dāng)成一個(gè)語(yǔ)句塊來(lái)處理眼五,所以必須強(qiáng)制性的將它轉(zhuǎn)換成一種表達(dá)式。 加上圓括號(hào)的目的是迫使eval函數(shù)在處理JavaScript代碼的時(shí)候強(qiáng)制將括號(hào)內(nèi)的表達(dá)式(expression)轉(zhuǎn)化為對(duì)象彤灶,而不是作為語(yǔ)句(statement)來(lái)執(zhí)行看幼。舉一個(gè)例子,例如對(duì)象字面量{}幌陕,如若不加外層的括號(hào)诵姜,那么eval會(huì)將大括號(hào)識(shí)別為JavaScript代碼塊的開(kāi)始和結(jié)束標(biāo)記,那么{}將會(huì)被認(rèn)為是執(zhí)行了一句空語(yǔ)句搏熄。所以下面兩個(gè)執(zhí)行結(jié)果是不同的:alert(eval("{}"); // return undefined alert(eval("({})");// return object[Object]
2 JSON.parse(standJson) —— 標(biāo)準(zhǔn)格式的json ? 屬性名和字符串必須帶雙引號(hào)3 自己寫(xiě)ajax: ? ?
0 電話 ? ? ? ajax對(duì)象 ? ? ?
1 撥號(hào) ? ? ? 連接 ? ? ?
2 說(shuō)話 ? ? ? 發(fā)送 ? ? ?
3 聽(tīng) ? ? ? ? 接受 ?
1創(chuàng)建對(duì)象
XMLHttpRequest(); ?兼容 高級(jí) ie7+
ActiveXObject(Microsoft.XMLHTTP); ?兼容ie678 ?
判斷: 1 window. 2 typeof ?3 try...catch —— 耗性能 ?
4判斷瀏覽器 ?捕獲異常: ?try{ ? ? ? ? 有肯能出錯(cuò)的代碼 ?}catch(e){ ?e ?Exception錯(cuò)誤對(duì)象 ? ? ? ? 補(bǔ)救的代碼 或者 提示信息 ?} 2 連接 open(方式棚唆,地址,是否異步) ? ?ajax就是異步請(qǐng)求javascript ?and XML ? 方式:get/post ? ? get: 數(shù)據(jù)在地址欄上 ? ? ? ?不安全 ? 32k ? 有緩存 ? post: ?數(shù)據(jù)不在地址欄上 ? ?“相對(duì)”安全 https ? 1G ? ?沒(méi)有緩存 ? get優(yōu)勢(shì):分享 ?收藏 ? 地址:url ? ? ? 是否異步:true —— 永遠(yuǎn)寫(xiě)true ? 接口:API 應(yīng)用程序接口 ? ?url: 不能出現(xiàn)中文心例、俄文宵凌、韓文、日文止后。瞎惫。。 ?只能出現(xiàn)英文數(shù)字下劃線译株,ascii碼瓜喇! ?編碼:encodeURIComponet(str);3、 發(fā)送 ?get ? xhr.send(); ? ?xhr.send(null); ?post ?xhr.send(str); ?name=value&name=value;4 接收 ? xhr.onreadystatechange = 回調(diào)函數(shù)歉糜; ? 回調(diào)函數(shù): ?ajax狀態(tài) ? http狀態(tài) ?
(1)ajax狀態(tài) **** ? ?0, 對(duì)象創(chuàng)建完成 ? ?1, 鏈接數(shù)據(jù) ? ?2乘寒,發(fā)送成功 ? ?3,接受數(shù)據(jù) ?報(bào)文頭 ? ?4匪补,接收數(shù)據(jù) ?報(bào)文體 ?----------真正的內(nèi)容伞辛,數(shù)據(jù) ?
(2)http狀態(tài) ? http狀態(tài) ? 狀態(tài)碼3位組成1xx ? 接受請(qǐng)求烂翰。正在處理2xx ? 成功3xx ? 重定向 ? 304緩存 ?// http狀態(tài) ?[200,300) 3044xx ? 錯(cuò)誤 ---前端相關(guān)5xx ? 錯(cuò)誤 ---后臺(tái)相關(guān) ?
-----post請(qǐng)求1.open2、setRequestHeader("content-type","application/x-www-form-urlencoded")3蚤氏、send(數(shù)據(jù)) ?發(fā)送
--------cookie: 會(huì)話跟蹤技術(shù) ?服務(wù)器端在客戶端保留一部分?jǐn)?shù)據(jù) ???????????????????常用的會(huì)話跟蹤技術(shù)是Cookie與Session刽酱。Cookie通過(guò)在客戶端記錄信息確定用戶身份,Session通過(guò)在服務(wù)器端記錄信息確定用戶身份瞧捌。cookie不能批量設(shè)置同一文件夾里邊cookie有同名棵里,會(huì)有覆蓋的session:會(huì)話 ? 數(shù)據(jù)存在服務(wù)器端 ?sessionidgetElementsByName 注意: 只能從document下面獲取元素 ?獲取的是一組oForm.onsubmit = function(){} ,
表單有提交功能cookie: ?1 大小 非常的小 —— 4k ?2 不能跨域 ?3 不能跨瀏覽器 ?4 必須運(yùn)行在服務(wù)器環(huán)境下http規(guī)范:1 大小 4k ?2一個(gè)網(wǎng)頁(yè)最多只能存20個(gè)cookie3 一個(gè)網(wǎng)站最多只能存300個(gè)cookie跨域:域名一個(gè)網(wǎng)址的組成:http://www.baidu.com/index.htmlhttp:// ? ?www ? ? .baidu ? ? .com ? ? ?80 ? ? ? ? /index.html協(xié)議 ? ? 二級(jí)域名 ?主域名 ? 域名后綴 ?端口 ? ? ? 資源地址跨域: 只要協(xié)議、域名姐呐、端口任意一個(gè)不一樣就算跨域殿怜! ? ?同源策略!http://www.baidu.com/a.htmlhttp://www.baidu.com/b.html ?可以http://mp3.baidu.com/a.htmlhttp://map.baidu.com/b.html ?不可以http://www.baidu.com/a.html https://www.baidu.com/a.html ?不可以http://www.baidu.com:8080/a.html http://www.baidu.com:8888/a.html 不可以http://www.baidu.com/a.html http://www.baidu.cn/a.html 不可以