appendHTML方法ajax加载更多评论实例页面
//在后添加
<script>
var appendHTML = function(el, html) {
var divTemp = document.createElement("ul"), nodes = null
, fragment = document.createDocumentFragment();
divTemp.innerHTML = html;
nodes = divTemp.childNodes;
for (var i=0, length=nodes.length; i < length; i+=1) {
fragment.appendChild(nodes[i].cloneNode(true));
}
el.appendChild(fragment);
// 据说下面这样子世界会更清净
nodes = null;
fragment = null;
};
var $ = function(id) {
return {
0: document.getElementById(id),
length: 1,
click: function(fn) {
this[0].onclick = fn;
},
appendHTML: function(html, where) {
appendHTML(this[0], html, where);
}
}
};
$("commentMore").click(function() {
var xhr, self = this;
if (this.ajaxing) return;
if (window.XMLHttpRequest) {
xhr = new window.XMLHttpRequest();
} else {
xhr = new ActiveXObject("Microsoft.XMLHttp");
}
// 提示
this.innerHTML = '加载中...';
// 阻止二次点击
this.ajaxing = true;
// ajax go go go!
xhr.open("get", this.getAttribute("data-url"), true);
xhr.send(null);
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) {
if (xhr.status === 200 && xhr.responseText) {
$("commentUl").appendHTML(xhr.responseText);
self.parentNode.innerHTML = '<span class="g9">全部加载完毕</span>';
self = null;
} else {
self.innerHTML = '加载失败!点击重试~';
self.ajaxing = false;
}
}
}
return false;
});
</script>
//在前添加
<script>
var prependHTML = function(el, html) {
var divTemp = document.createElement("ul"), nodes = null
, fragment = document.createDocumentFragment();
divTemp.innerHTML = html;
nodes = divTemp.childNodes;
for (var i=0, length=nodes.length; i < length; i+=1) {
fragment.appendChild(nodes[i].cloneNode(true));
}
el.insertBefore(fragment, el.firstChild);
// 据说下面这样子世界会更清净
nodes = null;
fragment = null;
};
var $ = function(id) {
return {
0: document.getElementById(id),
length: 1,
click: function(fn) {
this[0].onclick = fn;
},
prependHTML: function(html, where) {
prependHTML(this[0], html, where);
}
}
};
$("commentMore").click(function() {
var xhr, self = this;
if (this.ajaxing) return;
if (window.XMLHttpRequest) {
xhr = new window.XMLHttpRequest();
} else {
xhr = new ActiveXObject("Microsoft.XMLHttp");
}
// 提示
this.innerHTML = '加载中...';
// 阻止二次点击
this.ajaxing = true;
// ajax go go go!
xhr.open("get", this.getAttribute("data-url"), true);
xhr.send(null);
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) {
if (xhr.status === 200 && xhr.responseText) {
$("commentUl").prependHTML(xhr.responseText);
self.parentNode.innerHTML = '<span class="g9">全部加载完毕</span>';
self = null;
} else {
self.innerHTML = '加载失败!点击重试~';
self.ajaxing = false;
}
}
}
return false;
});
</script>
appendHTML方法ajax加载更多评论实例页面的更多相关文章
- phpcms列表分页ajax加载更多
1.在phpcms\modules\content\index.php文件中添加以下函数: /*列表分页ajax加载更多*/ public function homeajaxlist() { if( ...
- C#使用phantomjs,爬取AJAX加载完成之后的页面
1.开发思路:入参根据apiSetting配置文件,分配静态文件存储地址,可实现不同站点的静态页生成功能.静态页生成功能使用无头浏览器生成,生成之后的字符串进行正则替换为固定地址,实现本地正常访问. ...
- js实现『加载更多』功能实例
DEMO : 滚动加载示例 关于如何实现『加载更多』功能,网上有插件可用,例如比较著名的使用iscroll.js实现的上拉加载更多.下拉刷新功能. 但实际用起来却是很麻烦.由于是第三方插件,要按照对方 ...
- nodejs爬虫笔记(四)---利用nightmare解决加载更多问题
目标: 解决页面加载更多问题.笔记三中,我们只爬取到网页的部分信息,而点击加载更多后的页面内容是没有提取到的.开始我的想法是找到加载更多的数据接口(可参照:http://www.jianshu.com ...
- IOS - UITableView分批显示数据 实现点击加载更多
Phone屏幕尺寸是有限的,如果需要显示的数据很多,可以先数据放到一个table中,先显示10条,table底部有一察看更多选项,点击察看更多查看解析的剩余数据.基本上就是数据源里先只放10条, 点击 ...
- tableView 加载更多
在ios开中中,由于屏幕尺寸限制,如果需要显示的数据很多,需要用到分页加载. 原理:先数据放到一个table中,先显示10条,table底部有一察看更多选项,点击察看更多查看解析的剩余数据.基本上就是 ...
- iscroll5实现下拉加载更多
1 下载最新的iscroll5,本文版本是5.1.3 2 提取iscroll-probe.js,选择这个文件的原因是我们要给iscroll扩展一个事件,需要用到probeType 属性 3 修改isc ...
- PHP+Ajax点击加载更多列表数据实例
一款简单实用的PHP+Ajax点击加载更多列表数据实例,实现原理:通过“更多”按钮向服务端发送Ajax请求,PHP根据分页参数查询将最新的几条记录,数据以JSON形式返回,前台Query解析JSON数 ...
- 【jquery ,ajax,php】加载更多实例
jquery $(function() { //初始化 getData(0); var index = 1; $("#more").click(function() { getDa ...
随机推荐
- bzoj 4820: [Sdoi2017]硬币游戏【kmp+高斯消元】
有点神,按照1444的做法肯定会挂 注意到它的概率是相同的,所以可以简化状态 详见http://www.cnblogs.com/candy99/p/6701221.html https://www.c ...
- 我的ubuntu连vi都没有??那在命令行怎么编辑文件??
今天弄了个docker下的ubuntu官方镜像,想在镜像里做一点实验,免得把自己的环境写得乱七八糟. 把代码文件mount进去之后,开始编译,但是镜像太干净了,什么工具都没有,于是先装cmake ap ...
- LuoguP1063 能量项链【区间Dp】
前天测试考了QAQ.这么经典的区间dp不再开一文好像有点可惜. 内容是从模拟赛结题报告中copy来的.QAQ noip能量项链原题. https://www.luogu.org/problemnew/ ...
- Taro 采坑日常
组件事件传参只能在类作用域下的确切引用(this.handleXX || this.props.handleXX),或使用 bind. 组件中点击事件如下 // 组件 <AtListItem k ...
- 我的spring cloud项目历程(2018.3~2018.9)
前言 今天是9月17日,趁着山竹的临幸,得以在家里舒适的办公.项目从3月底开始,至今刚好半年.抽几十分钟,总结下半年的历程.对后面的项目,应该也有一点帮助吧. 学习前的七个问题 项目开始前,由于某些特 ...
- Service官方教程(5)后台服务发送通知、把服务变前台服务。
1.Sending Notifications to the User (发送通知) Once running, a service can notify the user of events usi ...
- Robot Framework and Ride
Robot framework是诺西(NSN)开源的一套自动化测试工具,在通信设备自动化测试中很实用,它基于Python开发,主要模拟NMS网管配置数据到网元NODE,并读取配置看配置是否生效,ECI ...
- RMAN-06564错误的原因及解决办法
今日在进行数据库恢复时,遭遇RMAN-06564错误,如下: RMAN> restore spfile from autobackup; Starting restore at 01-NOV-1 ...
- shell编写的多服务器自动互信脚本(安装ceph)
相信大家都使用过分布式存储,而在分布式存储中较为出色的非ceph莫属了,但是这里就不深入聊ceph啦,我们只是聊聊安装ceph时遇到的问题. ceph需要多台主机进行ssh互信.三台还能忍受,但是当超 ...
- 总结几点sql语句优化
一.表设计阶段: 1.主键的使用 a.业务日志表.安全审计表采用自增长: b.自定义编号用于业务流程类表,根据一定的编号规则: c.int型主键 用于基础数据表: 2.逻辑删除字段的 ...