ajax的写法与注意事项

-------------------ajax: 数据交互----------------------

表单form  用户体验非常差   流量地址名记得写全。

表单的三要素:1 action  告诉数据提交到哪里; 2 name   数据的名字; 3 value   值

--------------------服务器:  集成环境  wamp : php+mysq

l-------------缓存:浏览器对同一个地址 只会访问一次。解决: 添加随机因子1 随机数   Math.random();2 添加时间戳  new Date().getTime();

-------------------编码:  保证所有文件都是utf-8编码---eval: 把字符串代码转换成js可以执行的代码--json转字符串: JSON.stringify--------------字符串转json:------------------------ 1 eval  —— 注意必须加括号 例如:eval("("+str+")")   str是来自后台的json格式字符串 "{a:15,b:5}"  后台不会有人给你加()的,所以一定要记得自己加。原因在于:eval本身的问题。 由于json是以”{}”的方式来开始以及结束的,在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式。 加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执行。举一个例子,例如对象字面量{},如若不加外层的括号,那么eval会将大括号识别为JavaScript代码块的开始和结束标记,那么{}将会被认为是执行了一句空语句。所以下面两个执行结果是不同的:alert(eval("{}"); // return undefined alert(eval("({})");// return object[Object]

2 JSON.parse(standJson) —— 标准格式的json   属性名和字符串必须带双引号3 自己写ajax:    

0 电话       ajax对象      

1 拨号       连接      

2 说话       发送      

3 听         接受  

1创建对象

XMLHttpRequest();  兼容 高级 ie7+

ActiveXObject(Microsoft.XMLHTTP);  兼容ie678  

判断: 1 window. 2 typeof  3 try...catch —— 耗性能  

4判断浏览器  捕获异常:  try{         有肯能出错的代码  }catch(e){  e  Exception错误对象         补救的代码 或者 提示信息  } 2 连接 open(方式,地址,是否异步)    ajax就是异步请求javascript  and XML   方式:get/post     get: 数据在地址栏上        不安全   32k   有缓存   post:  数据不在地址栏上    “相对”安全 https   1G    没有缓存   get优势:分享  收藏   地址:url       是否异步:true —— 永远写true   接口:API 应用程序接口    url: 不能出现中文、俄文、韩文、日文。。。  只能出现英文数字下划线,ascii码!  编码:encodeURIComponet(str);3、 发送  get   xhr.send();    xhr.send(null);  post  xhr.send(str);  name=value&name=value;4 接收   xhr.onreadystatechange = 回调函数;   回调函数:  ajax状态   http状态  

(1)ajax状态 ****    0, 对象创建完成    1, 链接数据    2,发送成功    3,接受数据  报文头    4,接收数据  报文体  ----------真正的内容,数据  

(2)http状态   http状态   状态码3位组成1xx   接受请求。正在处理2xx   成功3xx   重定向   304缓存  // http状态  [200,300) 3044xx   错误 ---前端相关5xx   错误 ---后台相关  

-----post请求1.open2、setRequestHeader("content-type","application/x-www-form-urlencoded")3、send(数据)  发送

--------cookie: 会话跟踪技术  服务器端在客户端保留一部分数据  ??????????????????常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。cookie不能批量设置同一文件夹里边cookie有同名,会有覆盖的session:会话   数据存在服务器端  sessionidgetElementsByName 注意: 只能从document下面获取元素  获取的是一组oForm.onsubmit = function(){} ,

表单有提交功能cookie:  1 大小 非常的小 —— 4k  2 不能跨域  3 不能跨浏览器  4 必须运行在服务器环境下http规范:1 大小 4k  2一个网页最多只能存20个cookie3 一个网站最多只能存300个cookie跨域:域名一个网址的组成:http://www.baidu.com/index.htmlhttp://    www     .baidu     .com      80         /index.html协议     二级域名  主域名   域名后缀  端口       资源地址跨域: 只要协议、域名、端口任意一个不一样就算跨域!    同源策略!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 不可以

你可能感兴趣的:(ajax的写法与注意事项)