赞
踩
3.解析和序列化
(1)JSON.stringify可以把JSON对象转换成字符串(序列化),可以再带两个参数。如果第二个参数是字符串数组,则不在数组中的属性全部丢弃。如果第二个参数是函数,则把键和值回传给参数,经过函数处理,返回值作为键值;返回undefined,相应属性会被忽略。第三个参数是为转换完的字符串自动加入换行符和缩进符,参数表示缩进的空格数,最大10。- //小实验
- var json={
- "name":"brain",
- "sex":"male",
- "age":15
- }
- var jsonText=JSON.stringify(json);
- var jsonText2=JSON.stringify(json,["name"]);
- var jsonText3=JSON.stringify(json,function(key,value){
- if(key=="sex"){
- if(value=="male"){
- return 0;
- }else{
- return 1;
- }
- }else if(key=="age"){
- return;
- }else{
- return value;
- }
- });
- var jsonText4=JSON.stringify(json,null,4);
-
- console.log(jsonText);//{"name":"brain","sex":"male","age":15}
- console.log(jsonText2);//{"name":"brain"}
- console.log(jsonText3);//{"name":"brain","sex":0}
- console.log(jsonText4);
- /*
- {
- "name": "brain",
- "sex": "male",
- "age": 15
- }
- */
- //小实验
- var jsonText='{"name":"brain","sex":"0","age":15}';
- var json1=JSON.parse(jsonText);
- var json2=JSON.parse(jsonText,function(key,value){
- if(key=="sex"){
- if(value=="0"){
- return "male";
- }else{
- return "female";
- }
- }else{
- return value;
- }
- });
- console.log(json1.sex);//0
- console.log(json2.sex);//male
- var xhr=new XMLHttpRequest();
- xhr.onreadystatechange=function(){
- console.log(xhr.status+":"+xhr.statusText);
- }
- xhr.open("post","http://www.hostname.com");
- xhr.send("?123");
- //小实验
- var img=new Image();
- img.οnlοad=function(){
- console.log("loaded");
- }
- img.οnerrοr=function(){
- console.log("error");
- }
- img.src="http://www.hostname.com";
- //小实验
- function handleResponse(obj){
- console.log(obj.name);
- }
- var script=document.createElement("script");
- script.src="http://hostname/json/?callback=handleResponse";
- document.body.insertBefore(script,document.body.firstChild);
JSONP非常流行,能够直接访问响应文本,支持浏览器与服务器之间跨域双向通信。但不足是明显的:从其他域加载代码不安全;确定JSONP请求是否失败不太容易,不是所有浏览器都支持<script>标签的onerror事件。
- <?php
- $i=0;
- while(true){
- echo "$i;";
- flush();//将cache中的数据发给浏览器
- sleep(10);
- $i++
- }
- ?>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。