用Ajax实现自动刷新news功能
这是Ajax应用的一个小实例:在页面中自动刷新功能,比如整个新闻页面中某一个小版块的内容,无需刷新整个页面就可以自动更新:
1、首先创建简单的页面元素:
<body>
<input type="button" value="按钮" id="btn" />
<ul id="ul1"></ul>
</body>
2、准备一个php文件get_news.php,将新闻数据放到里面:
<?php
header('content-type:text/html;charset="utf-8"');
error_reporting(0); $news = array(
array('title'=>'范冰冰赞冯小刚比以前更温柔','date'=>'20161123'),
array('title'=>'范冰冰赞冯小刚比以前更温柔','date'=>'20161123'),
array('title'=>'范冰冰赞冯小刚比以前更温柔','date'=>'20161123'),
array('title'=>'范冰冰赞冯小刚比以前更温柔','date'=>'20161123'),
array('title'=>'范冰冰赞冯小刚比以前更温柔','date'=>'20161123'),
array('title'=>'拉拉看电视风口浪尖何瑞方法','date'=>'20161123'),
array('title'=>'拉拉看电视风口浪尖何瑞方法','date'=>'20161123'),
); echo json_encode($news);
3、方法一:不使用Ajax封装函数,直接用步骤实现:
var oBtn = document.getElementById('btn');
oBtn.onclick = function(){
function ajax(){
var xhr = null;
try{
xhr = new XMLHttpRequest();
}catch(e){
xhr = new ActiveXObject('Microsoft.XMLHTTP');
};
xhr.open('get','get_news.php',true);
xhr.send();
xhr.onreadystatechange = function(){
if(xhr.readyState == 4){
if( xhr.status == 200){
// alert(xhr.responseText);
var oDate = JSON.parse( xhr.responseText );
var oUl = document.getElementById('list');
var str = '';
for(var i=0; i<oDate.length; i++){
str += '<li><a href="#">'+ oDate[i].title +'</a>[<span>'+ oDate[i].date
+'</span>]</li>'
}
oUl.innerHTML = str;
}else{
alert('出错了,Error:' + xhr.status)
};
};
};
};
setInterval(function(){
ajax();
},1000);
}
4、还有一个简单点的办法,引入封装的Ajax函数,http://www.cnblogs.com/angelatian/p/6102286.html,然后传入四个参数,注意获取过来的数据需要使用JSON.parse()方法进行解析才能进行后续操var oBtn = document.getElementById('btn') oBtn.onclick = function() {
ajax('get','get_news.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><a href="">'+data[i].title+'</a> [<span>'+data[i].date
+'</span>]</li>';
}
oUl.innerHTML = html;
}); 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><a href="">'+data[i].title+'</a> [<span>'+data[i].date
+'</span>]</li>';
}
oUl.innerHTML = html;
});
}, 1000); }
用Ajax实现自动刷新news功能的更多相关文章
- ajax+jsp自动刷新
通过 AJAX,JavaScript 可使用 JavaScript 的 XMLHttpRequest 对象来直接与服务器进行通信.通过这个对象, JavaScript 可在不重载页面的情况与 Web ...
- SpringCloud 详解配置刷新的原理 使用jasypt自动加解密后 无法使用 springcloud 中的自动刷新/refresh功能
之所以会查找这篇文章,是因为要解决这样一个问题: 当我使用了jasypt进行配置文件加解密后,如果再使用refresh 去刷新配置,则自动加解密会失效. 原因分析:刷新不是我之前想象的直接调用conf ...
- ajax请求自动刷新页面
ajax是异步请求技术,可以实现页面的局部刷新.但是今天写代码的时候发现每次ajax之后都会发生整个页面的刷新,最后发现这是因为触发ajax事件的input标签的type设置为了submit,所以会产 ...
- SQL实现类似于自动刷新数据的功能
有时需要在SQL中,定时刷新某张表,比如说是要定时查询某张表的行数,通常做法就是手动的按F5去执行来刷新数据.但是如果这个定时查询历时较长,10分钟,或半小时,手动的话肯定是要崩溃了.貌似SQL没有像 ...
- 更为简单的Ctrl+S自动刷新浏览器工具-LinrF5
一款自动刷新浏览器的小工具,它通过监听用户的按键,如果在键盘按下 Ctrl+S ,则自动刷新浏览器,操作十分简单,前端开发必备神器,快速提升工作效率,支持IE.火狐以及最新版的chrome33.之前我 ...
- Windows Phone 8 LongListSelector实现下拉自动刷新列表
LongListSelector是一个加强版的列表控件,它可以实现分组的列表,如系统人脉列表的交互效果就可以利用LongListSelector控件去实现,同时LongListSelector也一样可 ...
- BrowserSync,调试利器--自动刷新(转
---恢复内容开始--- 请想象这样一个场面:你开着两个显示器,一边是IDE里的代码,另一边是浏览器里的你正在开发的应用.此时桌上还放着你的手机,手机里也是这个开发中的应用.然后,你新写了一小段代码, ...
- flask-script实现自动刷新页面调试
本文flask==1.0.2 1.导入extension包 from flask_script import Manager 2.使用manager管理工具 app = Flask(__name__) ...
- 自动保存草稿 asp+ajax自动存稿功能详解(转自影子)
自动保存草稿功能的原理 我们都知道网页是一种无状态的,每次都需要请求,响应,当一次请求完成后就与服务器断开连接了,所以我们不能像网页一样实现实时的交互功能,但是为了满足更多的需求一个比较无敌的程序员还 ...
随机推荐
- UVa 11450 - Wedding shopping
题目大意:我们的朋友Bob要结婚了,所以要为他买一些衣服.有m的资金预算,要买c种类型的衣服(衬衫.裤子等),而每种类型的衣服有k个选择(只能做出一个选择),每个选择的衣服都有一个价格,问如何选择才能 ...
- javascript中的__proto__和prototype
一.2个参考网址: http://icekiller110.iteye.com/blog/1566768 http://www.cnblogs.com/snandy/archive/2012/09/0 ...
- ios framework 开发 之 实战 一,合并失败了
保证public 文件目录独立 在 XCode 7 中,这一条已经自动实现了 Build Settings>Public Headers Folder Path "$(PROJECT_ ...
- Python3基础 使用 in notin 查询一个字符是否指定字典的键或者值
镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.-------------------------------------- ...
- 在windows上搭建ipv6代理
事出有因,学校每天12:00之后断网,断网之后怎么办?难道直接睡了?我不甘心. 幸好学校还是留有余地,在断网之后,还是能够上ipv6的,只是现阶段互联网对ipv6支持很不理想,怎么办?刚刚发现 ...
- github 之 下载历史版本
1.打开github中要下载的项目 2.点击commits 点击上图中标记的地方,进入下图所示: 3. 选择列表中的某个版本 4. Browse Files 5. 下载 点击上图中的 Download ...
- origin从图中获得数据
有Origin的原图,即利用Origin的"copy page"功能直接拷贝到文字处理软件的数据图,对于这种图,双击用Origin打开后,双击要导出数据的权限,打开"pl ...
- oc是一个全动态语言,oc的一切都是基于runtime实现的!
oc是一个全动态语言,oc的一切都是基于runtime实现的! 从以下三方面来理解runtime吧! 1. 传统的面向过程的语言开发,例如c语言.实现c语言编译器很简单,只要按照语法规则实现一个LAL ...
- HDU-1994-利息计算
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1994 水题 题目分析 就是两种储存方式,输出所得本金加利息 代码 #include<stdio. ...
- HTTP的GET方法模拟
进行GET方法的测试 #telnet[ ]10.1.1.11[ ]80 GET[ ]/[ ]HTTP/1.0 [两个回车] HEAD[]/[]HTTP/1.0[回车回车] http://www.cnb ...