ajax获取新闻数据的小例子

来源:互联网 发布:mac 终端命令 编辑:程序博客网 时间:2024/05/23 01:25

Get方式获取到的信息是字符串(responseText)

① 可以借助JSON对象的方法:stringify()和parse()方法,进行字符串对象之间的转换

   var arr=[1,2,3];   var a={left:100};   //alert(JSON.stringify(a));//typeof JSON.stringify(arr)是string                       //JSON对象的输出有严格格式:'{"left":100}',变量值要加双引号   var s1="[1,2,3]";   var s2="{left:100}";   var s3='{"left":100}';   //alert(JSON.parse(s1));//---输出数组[1,2,3]   //alert(JSON.parse(s2));//---出错。因为JSON对象格式严格,必须是:'{"left":100}'的格式   alert(JSON.parse(s3).left);//---输出Object Object

②ajax获取服务器内容的实例:

getNews.php代码:

<?phpheader('content-type:text/html;charset="utf-8"');error_reporting(0);$news=array(   array("title"=>'习近平同代表委员共商国是两会细节 国平',"date"=>"2016-3-16"),     array("title"=>'李克强答如何解决"工资8000元到手仅5000元"',"date"=>"2016-3-16"),     array("title"=>'两会闭幕辽宁"老虎"落马曾3年3连跳升副部级',"date"=>"2016-3-16"),     array("title"=>'宁波市长卢子跃严重违纪被查 被指行贿斯鑫良',"date"=>"2016-3-16"),     array("title"=>'美女翻译六上总理记者会 外号樱桃小丸子',"date"=>"2016-3-16"),     array("title"=>'外媒:印尼警方击毙两名中国籍极端分子',"date"=>"2016-3-16"),     array("title"=>'复旦将抗肿瘤药物专利6500万美元售美国公司',"date"=>"2016-3-16"), );echo json_encode($news);

文件getNews.php在浏览器中显示为:

[{"title":"\u4e60\u8fd1\u5e73\u540c\u4ee3\u8868\u59d4\u5458\u5171\u5546\u56fd\u662f\u4e24\u4f1a\u7ec6\u8282 \u56fd\u5e73","date":"2016-3-16"},<span style="font-family: Arial, Helvetica, sans-serif;">{"title":"\u674e\u514b\u5f3a\u7b54\u5982\u4f55\u89e3\u51b3\"\u5de5\u8d448000\u5143\u5230\u624b\u4ec55000\u5143\"","date":"2016-3-16"},</span><span style="font-family: Arial, Helvetica, sans-serif;">{"title":"\u4e24\u4f1a\u95ed\u5e55\u8fbd\u5b81\"\u8001\u864e\"\u843d\u9a6c\u66fe3\u5e743\u8fde\u8df3\u5347\u526f\u90e8\u7ea7","date":"2016-3-16"},{"title":"\u5b81\u6ce2\u5e02\u957f\u5362\u5b50\u8dc3\u4e25\u91cd\u8fdd\u7eaa\u88ab\u67e5\u88ab\u6307\u884c\u8d3f\u65af\u946b\u826f","date":"2016-3-16"},{"title":"\u7f8e\u5973\u7ffb\u8bd1\u516d\u4e0a\u603b\u7406\u8bb0\u8005\u4f1a\u5916\u53f7\u6a31\u6843\u5c0f\u4e38\u5b50","date":"2016-3-16"},{"title":"\u5916\u5a92:\u5370\u5c3c\u8b66\u65b9\u51fb\u6bd9\u4e24\u540d\u4e2d\u56fd\u7c4d\u6781\u7aef\u5206\u5b50","date":"2016-3-16"},{"title":"\u590d\u65e6\u5c06\u6297\u80bf\u7624\u836f\u7269\u4e13\u52296500\u4e07\u7f8e\u5143\u552e\u7f8e\u56fd\u516c\u53f8","date":"2016-3-16"}]</span>

返回一个数组,数组元素为7个JSON对象,每个对象有两个属性:title和date

前端需要做的是,得到这些数据,并把它们通过DOM操作放在网页的相应位置上。

Ajax:通过某个接口(文件)去服务器取数据,把取回来的数据,根据数据特性,放在客户端网页上处理。

<body>        <input id="btn" type="button" value="按钮"/>        <ul id="ul1">获取新闻到该处</ul>        <script src="JSON.js"></script>        <script src="ajax.js"></script></body>

xhr.open("get","getNews.php",true);xhr.setRequestHeader("content-type","application/x-www-form-urlencoded");       xhr.send();xhr.onreadystatechange=function(){ if(xhr.readyState==4){   if(xhr.status==200){       var data=JSON.parse(xhr.responseText);       varoUl=document.getElementById("ul1");       var html='';  //DOM操作,把服务器取回的内容显示在网页上。       for(var i=0; i<data.length;i++) {          html+='<li> <a herf="">'+ data[i].title + '</a> [<span>' + data[i].date + '</span>]</li>';      }       oUl.innerHTML=html;       }else{          alert("出错了,Err: " + xhr.status);       }   }}

取回数据的页面:


③ajax函数简单封装

functionajax(method,url,data,fn){    try{        xhr=new XMLHttpRequest();    }catch(e){        xhr=newActiveXObject("Microsoft.XMLHTTP");    }     if(method == "get" &&data){        url+='?'+data;    }    xhr.open(method,url,true);     if(method=="get"){        xhr.send();    }else{        xhr.setRequestHeader("content-type","application/x-www-form-urlencoded")                xhr.send(data);   }xhr.onreadystatechange=function(){   if(xhr.readyState==4){            if(xhr.status==200){                fn(xhr.responseText);                            }else{                alert("出错了,Err: " + xhr.status);            }        }    }}   

④ajax轮询方式获取服务器资源

setInterval(function(){      ajax('get','getNews.php','',function(data){           var data=JSON.parse(data);//参数回调           var oUl=document.getElementById("ul1");           var html='';           for (var i=0; i<data.length;i++){               html+='<li> <aherf="">' + data[i].title + '</a> [<span>' +data[i].date + '</span>] </li>';           }           oUl.innerHTML=html;       });},1000);//ajax轮询方式,1秒钟自动更新一次页面。        //ajax真正的轮询不会1s钟一次那么快,这样太耗资源。


1 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 看到小区街道乱扔的垃圾你会怎么办 去韩国干服务员不会讲韩语怎么办 华为手机键盘变英文字母大了怎么办 淘宝申请售后卖家余额不足怎么办 发票名称少写了一个字怎么办 微博数量与实际数量不一致怎么办 在淘宝中要买的商品卖完了怎么办 病因写错了保险不报销怎么办? 上学期间保险名字写错了怎么办 塑料盆上的商标纸撕了胶怎么办 川航买机票名字错了两个字怎么办 买机票护照号码填错了怎么办 换旅行证给孩子改名字怎么办 浦发信用卡卡片名字印错了怎么办 公主工作很辛苦坚持不下去怎么办 在表格里怎么办名字转换成拼音 激素脸有黑头毛孔大该怎么办 兢兢业业上班但不招领导喜欢怎么办 身体长的还算苗条但就屁股大怎么办 我想学英语从基础开始要怎么办 政府单位领导给我调岗我该怎么办 领导在单位想捞钱我该怎么办 单位领导是宵小之人我该怎么办 一件事想不明白非得想明白怎么办 在四楼上课时发生地震该怎么办 媳妇要离婚我想要孩子该怎么办 媳妇带了避孕环我想要孩子怎么办 新开的文具店一点生意都没有怎么办 孩子在学校被坏孩子欺负了该怎么办 老师像个傻叉我妈还喷我我怎么办啊 承台上预埋桥墩连接钢筋错了怎么办 冲床油缸螺栓拆不下来怎么办 汇款到账银行写错了怎么办 搜狗输入法数字序号超过20怎么办 苹果手机保存的图片变模糊怎么办 微信视频保存到手机变模糊怎么办 自己的位置被别人取代了怎么办 给工厂做半成品老板跑了怎么办 微信变成英文再恢复汉字怎么办 cad中标注尺寸数字太小怎么办 扣扣的钱包手势密码忘记了怎么办