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 相关文章推荐
js判断undefined类型,undefined,null, 的区别详细解析
Dec 16 Javascript
JS实现根据当前文字选择返回被选中的文字
May 21 Javascript
轻量级网页遮罩层jQuery插件用法实例
Jul 31 Javascript
js实现动态加载脚本的方法实例汇总
Nov 02 Javascript
javascript动态获取登录时间和在线时长
Feb 25 Javascript
js+flash实现的5图变换效果广告代码(附演示与demo源码下载)
Apr 01 Javascript
JS中的eval 为什么加括号
Apr 13 Javascript
JS动态修改网页body的背景色实例代码
Oct 07 Javascript
详解vue-cli官方脚手架配置
Jul 20 Javascript
Vue2.x Todo之自定义指令实现自动聚焦的方法
Jan 08 Javascript
Vue中的情侣属性$dispatch和$broadcast详解
Mar 07 Javascript
layerui代码控制tab选项卡,添加,关闭的实例
Sep 04 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
浅谈PHP Cookie处理函数
2016/06/10 PHP
CI框架AR数据库操作常用函数总结
2016/11/21 PHP
Yii框架分页技术实例分析
2019/08/30 PHP
让FireFox支持innerText的实现代码
2009/12/01 Javascript
html向js方法传递参数具体实现
2013/08/08 Javascript
jquery Tab效果和动态加载的简单实例
2013/12/11 Javascript
用js来刷新当前页面保留参数的具体实现
2013/12/23 Javascript
jquery的attr方法禁用表单元素禁用输入内容
2014/06/23 Javascript
jquery操作 iframe的方法
2014/12/03 Javascript
JS中Location使用详解
2015/05/12 Javascript
JavaScript正则表达式之multiline属性的应用
2015/06/16 Javascript
jQuery添加和删除指定标签的方法
2015/12/16 Javascript
基于jQuery仿淘宝产品图片放大镜特效
2020/10/19 Javascript
jQuery Ajax 加载数据时异步显示加载动画
2016/08/01 Javascript
vue中appear的用法
2017/08/17 Javascript
JS实现自定义状态栏动画文字效果示例
2017/10/12 Javascript
angularJs中orderBy筛选以及filter过滤数据的方法
2018/09/30 Javascript
解决layer.open弹出框不能获取input框的值为空的问题
2019/09/10 Javascript
javascript实现简单打字游戏
2019/10/29 Javascript
js+canvas实现转盘效果(两个版本)
2020/09/13 Javascript
python使用生成器实现可迭代对象
2018/03/20 Python
python实现俄罗斯方块
2018/06/26 Python
对python cv2批量灰度图片并保存的实例讲解
2018/11/09 Python
python的列表List求均值和中位数实例
2020/03/03 Python
python 截取XML中bndbox的坐标中的图像,另存为jpg的实例
2020/03/10 Python
python为什么会环境变量设置不成功
2020/06/23 Python
Python 如何实现数据库表结构同步
2020/09/29 Python
推荐WEB开发者最佳HTML5和CSS3代码生成器
2015/11/24 HTML / CSS
委托证明的格式
2014/01/10 职场文书
五年级科学教学反思
2014/02/05 职场文书
电子专业求职信
2014/06/19 职场文书
我为党旗添光彩演讲稿
2014/09/13 职场文书
检察院对照“四风”认真查找问题落实整改措施
2014/09/26 职场文书
人民调解协议书范本
2014/10/11 职场文书
2014年物资管理工作总结
2014/12/02 职场文书
Java spring单点登录系统
2021/09/04 Java/Android