jQuery+.net实现浏览更多内容(改编php版本)


Posted in Javascript onMarch 28, 2013

改编自php版本,原文:
jQuery+PHP实现浏览更多内容http://www.helloweba.com/view-blog-130.html
这里记录.net 下的实现
一、首先创建数据库表test,并插入一些测试数据

go 
if exists (select * from sysobjects where name='test') 
drop table [test] 
go 
CREATE TABLE [test]( 
[id] [int] IDENTITY(1,1), 
[author] [varchar](50), 
[content] [varchar](2000), 
[createOn] [datetime] 
) 
declare @index int; 
set @index = 1; 
while(@index < 1000) 
begin 
insert into test([author],[content],[createOn]) 
values 
('author' + cast(@index as varchar(4)),'content' + cast(@index as varchar(4)),DATEADD(DAY,@index,getdate())) 
set @index = @index + 1 
end 
go

二、建立一个html文件
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title></title> 
<script src="js/jquery-1.4.4.min.js" type="text/javascript"></script> 
<script src="js/jquery.more.js" type="text/javascript"></script> 
<script type="text/javascript"> 
$(function () { 
$('#more').more({ 'address': 'ajax/data.ashx' }) //这里为向后台请求地址 
}); 
</script> 
<style type="text/css"> 
more 
{ 
margin: 10px auto; 
width: 560px; 
border: 1px solid #999; 
} 
.single_item 
{ 
padding: 20px; 
border-bottom: 1px dotted #d3d3d3; 
} 
.author 
{ 
position: absolute; 
left: 0px; 
font-weight: bold; 
color: #39f; 
} 
.createOn 
{ 
position: absolute; 
right: 0px; 
color: #999; 
} 
.content 
{ 
line-height: 20px; 
word-break: break-all; 
} 
.element_head 
{ 
width: 100%; 
position: relative; 
height: 20px; 
} 
.get_more 
{ 
margin: 10px; 
text-align: center; 
} 
.more_loader_spinner 
{ 
width: 20px; 
height: 20px; 
margin: 10px auto; 
background: url(loader.gif) no-repeat; 
} 
</style> 
</head> 
<body> 
<div id="more"> 
<div class="single_item"> 
<div class="element_head"> 
<div class="createOn"> 
</div> 
<div class="author"> 
</div> 
</div> 
<div class="content"> 
</div> 
</div> 
<a href="javascript:;" class="get_more">::点击加载更多内容::</a> 
</div> 
</body> 
</html>

三、建立一个一般处理程序data.ashx
<%@ WebHandler Language="C#" Class="data" %> using System; 
using System.Web; 
using Microsoft.Practices.EnterpriseLibrary.Data; 
public class data : IHttpHandler { 
public void ProcessRequest (HttpContext context) { 
context.Response.ContentType = "text/plain"; 
int last = Convert.ToInt32(context.Request.Params["last"]); //开始记录数 
int amount = Convert.ToInt32(context.Request.Params["amount"]); //单次显示记录数 
Database db = DatabaseFactory.CreateDatabase(); 
////这里日期字段createOn先格式一下,否则会生成类似这种格式/Date(1310292162507)/ 
string sql = string.Format("select id,author,content,convert(varchar(100), createOn, 120) createOn from ( select row_number() over (order by id) as rowNum,* from test) as t " 
+ " where rowNum>{0} and rowNum<={1}", last, last + amount); 
System.Data.DataTable dt = db.ExecuteDataSet(System.Data.CommandType.Text,sql).Tables[0]; 
context.Response.Write(JSONHelper.DataTableToJSON(dt)); //输出json格式 
} 
public bool IsReusable { 
get { 
return false; 
} 
} 
}

jQuery+.net实现浏览更多内容(改编php版本) 
附:jquery.more.js插件内容
(function( $ ){ 
var target = null; 
var template = null; 
var lock = false; 
var variables = { 
'last' : 0 
} 
var settings = { 
'amount' : '10', 
'address' : '', 
'format' : 'json', 
'template' : '.single_item', 
'trigger' : '.get_more', 
'scroll' : 'false', 
'offset' : '100', 
'spinner_code': '' 
} var methods = { 
init : function(options){ 
return this.each(function(){ 
if(options){ 
$.extend(settings, options); 
} 
template = $(this).children(settings.template).wrap('<div/>').parent(); 
template.css('display','none') 
$(this).append('<div class="more_loader_spinner">'+settings.spinner_code+'</div>') 
$(this).children(settings.template).remove() 
target = $(this); 
if(settings.scroll == 'false'){ 
$(this).find(settings.trigger).bind('click.more',methods.get_data); 
$(this).more('get_data'); 
} 
else{ 
if($(this).height() <= $(this).attr('scrollHeight')){ 
target.more('get_data',settings.amount*2); 
} 
$(this).bind('scroll.more',methods.check_scroll); 
} 
}) 
}, 
check_scroll : function(){ 
if((target.scrollTop()+target.height()+parseInt(settings.offset)) >= target.attr('scrollHeight') && lock == false){ 
target.more('get_data'); 
} 
}, 
debug : function(){ 
var debug_string = ''; 
$.each(variables, function(k,v){ 
debug_string += k+' : '+v+'\n'; 
}) 
alert(debug_string); 
}, 
remove : function(){ 
target.children(settings.trigger).unbind('.more'); 
target.unbind('.more') 
target.children(settings.trigger).remove(); 
}, 
add_elements : function(data){ 
//alert('adding elements') 
var root = target 
// alert(root.attr('id')) 
var counter = 0; 
if(data){ 
$(data).each(function(){ 
counter++ 
var t = template 
$.each(this, function(key, value){ 
if(t.find('.'+key)) t.find('.'+key).text(value); 
}) 
//t.attr('id', 'more_element_'+ (variables.last++)) 
if(settings.scroll == 'true'){ 
// root.append(t.html()) 
root.children('.more_loader_spinner').before(t.html()) 
}else{ 
// alert('...') 
root.children(settings.trigger).before(t.html()) 
} 
root.children(settings.template+':last').attr('id', 'more_element_'+ ((variables.last++)+1)) 
}) 

} 
else methods.remove() 
target.children('.more_loader_spinner').css('display','none'); 
if(counter < settings.amount) methods.remove() 
}, 
get_data : function(){ 
// alert('getting data') 
var ile; 
lock = true; 
target.children(".more_loader_spinner").css('display','block'); 
$(settings.trigger).css('display','none'); 
if(typeof(arguments[0]) == 'number') ile=arguments[0]; 
else { 
ile = settings.amount; 
} 
$.post(settings.address, { 
last : variables.last, 
amount : ile 
}, function(data){ 
$(settings.trigger).css('display','block') 
methods.add_elements(data) 
lock = false; 
}, settings.format) 
} 
}; 
$.fn.more = function(method){ 
if(methods[method]) 
return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 )); 
else if(typeof method == 'object' || !method) 
return methods.init.apply(this, arguments); 
else $.error('Method ' + method +' does not exist!'); 
} 
})(jQuery)
Javascript 相关文章推荐
JavaScript 动态将数字金额转化为中文大写金额
May 14 Javascript
各浏览器对click方法的支持差异小结
Jul 31 Javascript
uploadify 3.0 详细使用说明
Jun 18 Javascript
选择复选框按钮置灰否则按钮可用
May 22 Javascript
JavaScript为事件句柄绑定监听函数实例详解
Dec 15 Javascript
JavaScript获取当前运行脚本文件所在目录的方法
Feb 03 Javascript
Vue2实现组件props双向绑定
Dec 02 Javascript
Bootstrap基本组件学习笔记之下拉菜单(7)
Dec 07 Javascript
javascript实现圣旨卷轴展开效果(代码分享)
Mar 23 Javascript
详解VueJs前后端分离跨域问题
May 24 Javascript
vue2.x 通过后端接口代理,获取qq音乐api的数据示例
Oct 30 Javascript
js异步接口并发数量控制的方法示例
Nov 22 Javascript
js给onclick事件赋值,动态传参数实例解说
Mar 28 #Javascript
自定义jQuery选项卡插件实例
Mar 27 #Javascript
js数组的操作详解
Mar 27 #Javascript
jquery获取tr中控件值并操作tr实现思路
Mar 27 #Javascript
css transform 3D幻灯片特效实现步骤解读
Mar 27 #Javascript
JS删除数组元素的函数介绍
Mar 27 #Javascript
jquery struts 验证唯一标识(公用方法)
Mar 27 #Javascript
You might like
JS实现php的伪分页
2008/05/25 PHP
mcrypt启用 加密以及解密过程详细解析
2013/08/07 PHP
PHP关于IE下的iframe跨域导致session丢失问题解决方法
2013/10/10 PHP
Yii2实现多域名跨域同步登录退出
2017/02/04 PHP
List Information About the Binary Files Used by an Application
2007/06/18 Javascript
提高javascript效率 一次判断,而不要次次判断
2012/03/30 Javascript
jQuery实现动画效果的简单实例
2014/01/27 Javascript
Javascript模块化编程详解
2014/12/01 Javascript
Javascript基础教程之关键字和保留字汇总
2015/01/18 Javascript
node.js操作mongodb学习小结
2015/04/25 Javascript
JavaScript核心语法总结(推荐)
2016/06/02 Javascript
利用VUE框架,实现列表分页功能示例代码
2017/01/12 Javascript
JavaScript组件开发之输入框加候选框
2017/03/10 Javascript
JS实现websocket长轮询实时消息提示的效果
2017/10/10 Javascript
Nodejs连接mysql并实现增、删、改、查操作的方法详解
2018/01/04 NodeJs
基于element-ui封装可搜索的懒加载tree组件的实现
2020/05/22 Javascript
Python中模拟enum枚举类型的5种方法分享
2014/11/22 Python
在Python下利用OpenCV来旋转图像的教程
2015/04/16 Python
Python简单遍历字典及删除元素的方法
2016/09/18 Python
Python中类的初始化特殊方法
2017/12/01 Python
python实现数独游戏 java简单实现数独游戏
2018/03/30 Python
Python3中正则模块re.compile、re.match及re.search函数用法详解
2018/06/11 Python
numpy.ndarray 交换多维数组(矩阵)的行/列方法
2018/08/02 Python
使用python实现http及ftp服务进行数据传输的方法
2018/10/26 Python
在python中将字符串转为json对象并取值的方法
2018/12/31 Python
selenium+python截图不成功的解决方法
2019/01/30 Python
利用python3 的pygame模块实现塔防游戏
2019/12/30 Python
浅谈css3新单位vw、vh、vmin、vmax的使用详解
2017/12/01 HTML / CSS
纯html5+css3下拉导航菜单实现代码
2013/03/18 HTML / CSS
Fashion Eyewear美国:英国线上设计师眼镜和太阳镜的零售商
2016/08/15 全球购物
阿迪达斯希腊官方网上商店:adidas希腊
2019/04/06 全球购物
餐饮业会计岗位职责
2013/12/19 职场文书
师范生自我鉴定
2014/03/20 职场文书
计算机系统管理员求职信
2014/06/20 职场文书
片区教研活动总结
2014/07/02 职场文书
污染环境建议书
2015/09/14 职场文书