KindEditor 3.5.1添加内容分页

KindEditor 3.5.1添加内容分页
KindEditor 3.5.1添加内容分页

下载KindEditor 3.5.1 官方地址:

https://www.360docs.net/doc/384055497.html,/files/kindeditor-3.5.1-zh_CN.zip

解压后打开目录下kindeditor.js文件

1,找到

items : [

'source', '|', 'fullscreen', 'undo', 'redo', 'print', 'cut', 'copy', 'paste',

'plainpaste', 'wordpaste', '|', 'justifyleft', 'justifycenter',

'justifyright',

'justifyfull', 'insertorderedlist', 'insertunorderedlist', 'indent', 'outdent', 'subscript',

'superscript', '|', 'selectall', '-',

'title', 'fontname', 'fontsize', '|', 'textcolor', 'bgcolor', 'bold', 'italic', 'underline', 'strikethrough', 'removeformat', '|', 'image', 'flash', 'media', 'advtable', 'hr', 'emoticons', 'link', 'unlink', '|', 'about'

],

这个Array为编辑器的工具栏,其中"-"表示换行,"|"表示分隔符。你可以把添加分页按钮放在任何一个地方我是这样放的(红色部分为添加的代码)

items : [

'source', '|', 'fullscreen', 'undo', 'redo', 'print', 'cut', 'copy', 'paste',

'plainpaste', 'wordpaste', '|', 'justifyleft', 'justifycenter',

'justifyright',

'justifyfull', 'insertorderedlist', 'insertunorderedlist', 'indent', 'outdent', 'subscript',

'superscript', '|', 'selectall', '-',

'title', 'fontname', 'fontsize', '|', 'textcolor', 'bgcolor', 'bold', 'italic', 'underline', 'strikethrough', 'removeformat', '|', 'image', 'flash', 'media', 'advtable', 'hr', 'emoticons', 'link', 'unlink', '|','page', '|', 'about'

],

2,找到

https://www.360docs.net/doc/384055497.html,ng = {

source : 'HTML代码',

undo : '后退(Ctrl+Z)',

redo : '前进(Ctrl+Y)',

cut : '剪切(Ctrl+X)',

copy : '复制(Ctrl+C)',

paste : '粘贴(Ctrl+V)', plainpaste : '粘贴为无格式文本', wordpaste : '从Word粘贴', selectall : '全选',

justifyleft : '左对齐', justifycenter : '居中', justifyright : '右对齐',

justifyfull : '两端对齐', insertorderedlist : '编号', insertunorderedlist : '项目符号', indent : '增加缩进',

outdent : '减少缩进',

subscript : '下标',

superscript : '上标',

title : '标题',

fontname : '字体',

fontsize : '文字大小',

textcolor : '文字颜色',

bgcolor : '文字背景',

bold : '粗体(Ctrl+B)',

italic : '斜体(Ctrl+I)', underline : '下划线(Ctrl+U)', strikethrough : '删除线', removeformat : '删除格式',

image : '图片',

flash : '插入Flash',

media : '插入多媒体',

table : '插入表格',

hr : '插入横线',

emoticons : '插入表情',

link : '超级链接',

unlink : '取消超级链接', fullscreen : '全屏显示',

about : '关于',

print : '打印',

fileManager : '浏览服务器', advtable : '表格',

yes : '确定',

no : '取消',

close : '关闭',

editImage : '图片属性', deleteImage : '删除图片',

editLink : '超级链接属性',

deleteLink : '取消超级链接',

tableprop : '表格属性',

tableinsert : '插入表格',

tabledelete : '删除表格',

tablecolinsertleft : '左侧插入列',

tablecolinsertright : '右侧插入列',

tablerowinsertabove : '上方插入行',

tablerowinsertbelow : '下方插入行',

tablecoldelete : '删除列',

tablerowdelete : '删除行',

noColor : '无颜色',

invalidImg : "请输入有效的URL地址。\n只允许jpg,gif,bmp,png格式。", invalidMedia : "请输入有效的URL地址。\n只允许

swf,flv,mp3,wav,wma,wmv,mid,avi,mpg,asf,rm,rmvb格式。",

invalidWidth : "宽度必须为数字。",

invalidHeight : "高度必须为数字。",

invalidBorder : "边框必须为数字。",

invalidUrl : "请输入有效的URL地址。",

invalidRows : '行数为必选项,只允许输入大于0的数字。',

invalidCols : '列数为必选项,只允许输入大于0的数字。', invalidPadding : '边距必须为数字。',

invalidSpacing : '间距必须为数字。',

invalidBorder : '边框必须为数字。',

pleaseInput : "请输入内容。",

invalidJson : '服务器发生故障。',

cutError : '您的浏览器安全设置不允许使用剪切操作,请使用快捷键(Ctrl+X)来完成。',

copyError : '您的浏览器安全设置不允许使用复制操作,请使用快捷键(Ctrl+C)来完成。',

pasteError : '您的浏览器安全设置不允许使用粘贴操作,请使用快捷键(Ctrl+V)来完成。'

};

这部分为鼠标停放在按钮上显示的文字,现在我们要给按钮加文字,有的人可能会说我改完第一步刷新后没看到按钮啊只有一个空格,别急慢慢来,先加上文字我是这洋写的(红色部分为添加的代码)

https://www.360docs.net/doc/384055497.html,ng = {

source : 'HTML代码',

undo : '后退(Ctrl+Z)',

redo : '前进(Ctrl+Y)',

cut : '剪切(Ctrl+X)',

copy : '复制(Ctrl+C)',

paste : '粘贴(Ctrl+V)',

plainpaste : '粘贴为无格式文本', wordpaste : '从Word粘贴', selectall : '全选',

justifyleft : '左对齐', justifycenter : '居中', justifyright : '右对齐',

justifyfull : '两端对齐', insertorderedlist : '编号', insertunorderedlist : '项目符号', indent : '增加缩进',

outdent : '减少缩进',

subscript : '下标',

superscript : '上标',

title : '标题',

fontname : '字体',

fontsize : '文字大小',

textcolor : '文字颜色',

bgcolor : '文字背景',

bold : '粗体(Ctrl+B)',

italic : '斜体(Ctrl+I)', underline : '下划线(Ctrl+U)', strikethrough : '删除线', removeformat : '删除格式',

image : '图片',

flash : '插入Flash',

media : '插入多媒体',

table : '插入表格',

hr : '插入横线',

emoticons : '插入表情',

link : '超级链接',

unlink : '取消超级链接', fullscreen : '全屏显示',

about : '关于',

page : '插入分页',

print : '打印',

fileManager : '浏览服务器', advtable : '表格',

yes : '确定',

no : '取消',

close : '关闭',

editImage : '图片属性', deleteImage : '删除图片',

editLink : '超级链接属性', deleteLink : '取消超级链接',

tableprop : '表格属性',

tableinsert : '插入表格',

tabledelete : '删除表格',

tablecolinsertleft : '左侧插入列',

tablecolinsertright : '右侧插入列',

tablerowinsertabove : '上方插入行',

tablerowinsertbelow : '下方插入行',

tablecoldelete : '删除列',

tablerowdelete : '删除行',

noColor : '无颜色',

invalidImg : "请输入有效的URL地址。\n只允许jpg,gif,bmp,png格式。", invalidMedia : "请输入有效的URL地址。\n只允许

swf,flv,mp3,wav,wma,wmv,mid,avi,mpg,asf,rm,rmvb格式。",

invalidWidth : "宽度必须为数字。",

invalidHeight : "高度必须为数字。",

invalidBorder : "边框必须为数字。",

invalidUrl : "请输入有效的URL地址。",

invalidRows : '行数为必选项,只允许输入大于0的数字。',

invalidCols : '列数为必选项,只允许输入大于0的数字。', invalidPadding : '边距必须为数字。',

invalidSpacing : '间距必须为数字。',

invalidBorder : '边框必须为数字。',

pleaseInput : "请输入内容。",

invalidJson : '服务器发生故障。',

cutError : '您的浏览器安全设置不允许使用剪切操作,请使用快捷键(Ctrl+X)来完成。',

copyError : '您的浏览器安全设置不允许使用复制操作,请使用快捷键(Ctrl+C)来完成。',

pasteError : '您的浏览器安全设置不允许使用粘贴操作,请使用快捷键(Ctrl+V)来完成。'

};

OK 我们来第三部

3,找到

KE.plugin['hr'] = {

click : function(id) {

KE.util.selection(id);

KE.util.insertHtml(id, '


');

KE.util.focus(id);

}

};

KE.plugin['print'] = {

click : function(id) {

KE.util.selection(id);

KE.g[id].iframeWin.print();

}

};

这部分为在编辑区插入代码的执行代码我们只需要在下面添加代码,修改后为(红色部分为添加的代码)

KE.plugin['hr'] = {

click : function(id) {

KE.util.selection(id);

KE.util.insertHtml(id, '


');

KE.util.focus(id);

}

};

KE.plugin['page'] = {

click : function(id) {

KE.util.selection(id);

KE.util.insertHtml(id, '[PageNext]');

KE.util.focus(id);

}

};

KE.plugin['print'] = {

click : function(id) {

KE.util.selection(id);

KE.g[id].iframeWin.print();

}

};

至此kindeditor.js文件修改完毕,下面我们来让按钮出现。。。

打开目录下skins文件夹下面的default.css样式表文件

找到

.ke-icon-about {

background-position: 0px -672px;

width: 16px;

height: 16px;

}

.ke-icon-plainpaste {

background-position: 0px -704px;

width: 16px;

height: 16px;

}

这部分规定了编辑器上按钮的显示图片我们只需要做如下修改(红色部分为添加的代码)

.ke-icon-about {

background-position: 0px -672px;

width: 16px;

height: 16px;

}

.ke-icon-page {

background-position: 0px -896px;

width: 16px;

height: 16px;

}

.ke-icon-plainpaste {

background-position: 0px -704px;

width: 16px;

height: 16px;

}

这个CSS规则只是调用了一张背景图片然后让它做偏移,图片的位置在

skins\default\下,文件名为default.gif这个图片里有很多默认没有用到的按钮,我只是选择了一个,大家可以自由发挥呵呵

现在大家可以去刷新下看看,按钮是不是已经出来了

效果是这样

点击一下就是这样

OK编辑器里要做的工作就是这样了。至于读取的时候要怎么做相信大家不用我交了,各种语言各种读。哈哈!

本教程由Adu原创,装载请注明出处,谢谢!

kindeditor使用方法==

kindeditor详细使用说明 1.下载KindEditor 最新版本。打开下载页面 2. 解压zip文件,将所有文件上传到您的网站程序目录下。例如:http://您的域名/editor/ 3.在需要显示编辑器的位置添加TEXTAREA输入框。 id在当前页面必须是唯一的值,还有,在有些浏览器上不设宽度和高度可能显示有问题,所以最好设一下宽度和高度。宽度和高度可用inline样式设置,也可用编辑器初始化参数设置。 在TEXTAREA里设置HTML内容即可实现编辑,在这里需要注意的是,如果从服务器端程序(ASP、PHP、https://www.360docs.net/doc/384055497.html,等)直接显示内容,则必须转换HTML特殊字符(>,<,&,")。具体请参考各语言目录下面的demo.xxx程序,目前支持ASP、https://www.360docs.net/doc/384055497.html,、PHP、JSP。 4.在该HTML页面添加以下脚本。注:KE.show的原理是先执行KE.init设置一些变量,等DOM 全部创建以后才开始执行KE.create创建编辑器。如果浏览器不触发DOMContentLoaded事件(例如:jQuery的$.ready,点击某个按钮,通过innerHTML 插入HTML等),则不能使用KE.show,需要直接调用KE.init和KE.create。 KE.init({ id : 'editor_id'});$.ready(function() { KE.create('editor_id');});调用KE.show和KE.init时,除id之外还可以设置其它的参数,具体属性请参考编辑器初始化参数。

第四章作业

第四章作业(存储器管理) 第一次作业: 1、对于首次适应算法,请回答下列问题: (1)应如何将各空闲分区链接成空闲分区链? (2)在回收内存时,可能出现哪几种情况?应怎样处理这些情况? (3)请对该算法的内存管理性能进行分析。 2、比较页式管理与段式管理的区别? 3、某请求分页系统,用户空间为32KB,每个页面1KB,主存16KB。某用户程序有7页 长,某时刻该用户进程的页表如下: (1)计算两个逻辑地址:0AC5H、1AC5H对应的物理地址。 (2)已知主存的一次存取为1.5us,对于TLB表(快表)的查询时间可以忽略,则访问上述两个逻辑地址共耗费多少时间? 4、什么叫重定位?它有哪两种方式?这两种方式有什么区别? 5、在具有快表的段页式存储管理方式中,如何实现地址变换? 第二次作业: 1、在某请求分页管理系统中,一个作业共5页,作业执行时一次访问如下页面:1,4,3, 1,2,5,1,4,2,1,4,5,若分配给该作业的主存块数为3,分别采用FIFO,LRU,Clock页面置换算法,试求出缺页中断的次数及缺页率。 2、 页面大小为4KB,一次内存的访问时间为100纳秒(ns),一次快表(TLB)的访问时间是10ns,处理一次缺页的平均时间为100毫秒(已含更新TLB和页表的时间),进程的驻留集大小固定为2个页框,采用FIFO法置换页面。假设1)TLB初始为空;2)地址转换时,

先访问TLB ,若TLB 未命中时再访问页表(忽略TLB 更新时间);3)有效位为0表示页面不在内存中。 请问: (1)该系统中,一次访存的时间下限和上限各是多少?(给出计算过程) (2)若已经先后访问过0、2号页面,则虚地址1565H 的物理地址是多少?(给出计算过程) 3、设某计算机的逻辑地址空间和物理地址空间均为128KB ,按字节编址。若某进程最多需要6页数据存储空间,页面大小为1KB ,操作系统采用固定分配局部置换策略为该进程分配4个页框(物理块)。在时刻300前该进程各页面的访问情况如下表所示: 当进程执行到时刻300时,要访问逻辑地址为17CAH 的数据,请回答下列问题: (1)该逻辑地址对应的页号是多少? (2)若采用先进先出(FIFO )置换算法,该逻辑地址对应的物理地址是多少?要求给出计算过程。 (3)若采用时钟(CLOCK )置换算法,该逻辑地址对应的物理地址是多少?要求给出计算过程。设搜索下一页的指针顺时针方向移动,且当前指向2号页框,示意图如下: 9号号7

几种常用网页文本编辑器总结

文本编辑器应用总结 一.lhgeditor文本编辑器 lhgeditor组件文件结构: 1. lhgeditor.js:组件的核心JS文件 2. lhgeditor.css:组件的样式表文件 3. images:组件所需的图片都在此文件夹中 以上三个文件为组件所必须的三个文件,组件包中其它以“_”开头的文件为示例的演示文件,实际使用中不需要这些文件。当然框架核心文件lhgcore.js是每个组件都必须用到的文件,记得加载组件前先要加载此文件。 lhgeditor组件使用说明: 1. 在调用组件的页面加载lhgcore.j s和lhgeditor.js两个文件。 2. 在window.onload函数里加入J.editor.add(编辑器的id).init(); 例:

二.nicEdit文本编辑器 //此处的引入文件位置路径为相对于该PHP文件的位置此为demo.php Note ?第一个参数可用其它CSS选择器,匹配多个textarea时只在第一个元素上加载编辑器。 ?通过K.create函数的第二个参数,可以对编辑器进行配置,具体参数请参考编辑器初始化参数。 var options = { cssPath : '/css/index.css', filterMode : true }; var editor = K.create('textarea[name="content"]', options); 4. 获取HTML数据 // 取得HTML内容 html = editor.html(); // 同步数据后可以直接取得textarea的value editor.sync(); html = document.getElementById('editor_id').value; // 原生API html = K('#editor_id').val(); // KindEditor Node API html = $('#editor_id').val(); // jQuery // 设置HTML内容 editor.html('HTML内容'); Note

kindeditor图片上传后生成带域名绝对路径配置及提交空格无法保存解决方法

kindeditor图片上传后生成带域名绝对路径配置方法 kindeditor默认上传图是不带域名域名绝对路径了,如果我们希望生成之后带上域名就需要进入urlType进行设置了,我们kindeditor中的urlType有几个参数默认这空值”“、”relative”、”absolute”、”domain”了。 关键在于初始化kindeditor时指定以下参数: urlType ”“ 空为不修改URL ”relative”相对路径 ”absolute”绝对路径 ”domain”带域名的绝对路径。 ============================================================================== 关于kindeditor提交空格问题的解决办法 版本4.1.10 问题反馈:后台编辑器段首空格无法正常保存到数据库。 变通办法:早期,通知用户使用全角空格,但后面发现提交后显示正常,再次编辑时未出现空格。 最终解决办法: 修改kindeditor.js 725行 部分我公司调整后的js行数为752行 将本行修改为: var re = /([ \f\n\r\t\v]*)<(\/)?([\w\-:]+)((?:\s+|(?:\s+[\w\-:]+)|(?:\s+[\w\-:]+=[^\ s"'<>]+)|(?:\s+[\w\-:"]+="[^"]*")|(?:\s+[\w\-:"]+='[^']*'))*)(\/)?>([ \f\n\ r\t\v]*)/g; 就是把第一个和最后一个\s 替换成[ \f\n\r\t\v]

修改前请注意备份

第四章习题及答案

第四章存储器管理 1.为什么要配置层次式存储器? 答:设置多个存储器可以使存储器两端的硬件能并行工作;采用多级存储系统,特别是Cache 技术,是减轻存储器带宽对系统性能影响的最佳结构方案;在微处理机内部设置各种缓冲存储器,减轻对存储器存取的压力。增加CPU中寄存器数量大大缓解对存储器压力。 2.可采用哪几种方式将程序装入内存?它们分别适用于何种场合? 答:(1)绝对装入方式,只适用于单道程序环境。 (2)可重定位装入方式,适用于多道程序环境。 (3)动态运行时装入方式,用于多道程序环境;不允许程序运行时在内存中移位置。 3.何谓静态链接?何谓装入时动态链接和运行时的动态链接?P120 答:静态链接是指在程序运行前,先将各目标模块及它们所需的库函数,链接成一个完整的装配模块,以后不再拆开的链接方式。 装入时动态链接是指将用户源程序编译后得到的一组目标模块,在装入内存时采用边装入边链接的链接方式。运行时动态链接是指对某些目标模块的链接,是在程序执行中需要该目标模块时,才对它进行的链接。 4.在进行程序链接时,应完成哪些工作? 答:由链接程序Linker将编译后形成的一组目标模块,以及它们需要的库函数链接在一起,形成一个完整的装入模块Load Module。主要工作是修改程序内的相对地址和修改目标程序中的外部调用标号。 5.在动态分区分配方式中,应如何将各空闲分区链接成空闲分区链? 答:在每个分区的起始部分,设置一些控制分区分配的信息,以及用于链接各分区所用的前向指针;在分区尾部设置一个后向指针,通过前后向链接指针,将所有空闲分区链成一个双向链。当分区分配出去后,把状态位由“0”改为“1”。

细数几款免费好用的在线HTML编辑器

细数几款免费好用的在线HTML编辑器 先普及一下基本知识:什么叫在线HTML编辑器?说得简单点,在线HTML编辑器就是在网上发帖子、写博客的那个带编辑功能的框框,可以进行图文排版等操作。当年本菜鸟做网站的时候,曾经自己用javascript编写过一个比较简单的在线HTML编辑器,用于文本内容的排版。但是因为水平有限,很多功能都无法实现。后来有了eWebEditor,功能确实强大,但这个编辑器是个收费的软件,并且正因为功能强大,也就显得过重,一些轻量的场合不是太适用。那有没有既免费、又功能强大、还能适应轻量场合的在线HTML编辑器呢?答案肯定是有的。这首先要感谢这些年来有一批奉献精神的程序猿们不断推进共享软件的开发,让我们得以享受他们的成果。一、百度出品的UEditorUEditor是由百度web 前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码。特别要说的是,头条号后台发布文章的编辑器就是用的UEditor!百度UEditorUEditor还有一个轻量版的,叫做UMeditor,简称UM。UM是为满足广大门户网站对于简单发帖框,或者回复框需求所定制的在线HTML编辑器。主要特点是容量和加载速度上的改变,主文件的代码量为139k,而且放弃了使用传统的iframe模式,采用了

div的加载方式,以达到更快的加载速度和零加载失败率。UM的第一个使用者是百度贴吧,以经受贴吧每天几亿的pv 的考验,功能设计应当是最优化的了。当然随着代码的减少,UM的功能对于UE来说还是有所减少,但也有增加,比如拖拽图片上传,chrome的图片拖动改变大小等。百度UEditor界面二、xhEditor开源HTML编辑器xhEditor是一个基于jQuery开发的简单迷你并且高效的可视化HTML编辑器,基于网络访问并且兼容IE 6.0+,Firefox 3.0+,Opera 9.6+,Chrome 1.0+,Safari 3.22+。xhEditor完全基于Javascript 开发,可以应用在任何的服务端语言环境下,例如:PHP、ASP、https://www.360docs.net/doc/384055497.html,、JA V A等。可以在CMS、博客、论坛、商城等互联网平台上完美的嵌入运行,能够非常灵活简单的和您的系统实现完美的无缝衔接。 主要特点:精简迷你:初始加载4个文件,包括:1个js(50k)+2个css(10k)+1个图片(5k),总共65k。若js和css文件进行gzip压缩传输,可以进一步缩减为24k左右。使用简单:简单的调用方式,加一个class属性就能将textarea变成一个功能丰富的可视化编辑器。无障碍访问:提供WAI-ARIA全面支持,全键盘精细操作,全程语音向导,提供完美无障碍访问体验,充分满足残疾人的上网需求。内置Ajax上传:内置强大的Ajax上传,包括HTML4和HTML5上传支持(多文件上传、真实上传进度及文件拖放上传),剪切板上传及远程抓

操作系统原理第2次在线作业

您的本次作业分数为:100分单选题 1.下面关于虚拟内存的论述中,正确的是﹎﹎﹎﹎。 ? A 在段页式系统中以段为单位管理用户的逻辑空间,以页为单位管理内 存的物理空间;有了虚拟内存才允许用户使用比内存更大的地址空间 ? B 为了提高请求分页系统中内存的利用率允许用户使用不同大小的页面 ? C 在段页式系统中,以页为单位管理用户的虚空间,以段为单位管理内 存空间 ? D 最佳适应算法是实现虚拟内存的常用算法 正确答案:A 单选题 2.把逻辑地址转变为内存的物理地址的过程称作﹎﹎﹎﹎。 ? A 编译 ? B 连接 ? C 运行 ? D 重定位 正确答案:D

单选题 3.在最佳适应算法中是按﹎﹎﹎﹎顺序形成空闲分区链。 ? A 空闲区首址递增 ? B 空闲区首址递减 ? C 空闲区大小递增 ? D 空闲区大小递减 正确答案:C 单选题 4.在可变分区式内存管理中,倾向于优先使用低址部分空闲区的算法是﹎﹎﹎﹎。 ? A 最佳适应算法 ? B 最坏适应算法 ? C 首次适应算法 ? D 循环适应算法 正确答案:C 单选题

5.在可变式分区分配方案中,某一作业完成后,系统收回其主存空间,并与相邻空闲区合并,为此需修改空闲区表,造成空闲区表项数减1的情况是﹎﹎﹎﹎。 ? A 无上邻(前邻、低址)空闲区,也无下邻(后邻、高址)空闲区 ? B 有上邻(前邻、低址)空闲区,但无下邻(后邻、高址)空闲区 ? C 有下邻(后邻、高址)空闲区,但无上邻(前邻、低址)空闲区 ? D 有上邻(前邻、低址)空闲区,也有下邻(后邻、高址)空闲区 正确答案:D 单选题 6.在可变式分区分配方案中,某一作业完成后,系统收回其主存空间,并与相邻空闲区合并,为此需修改空闲区表,造成空闲区表项数不变、某项的始址改变、长度增加的情况是﹎﹎﹎﹎。 ? A 无上邻(前邻、低址)空闲区,也无下邻(后邻、高址)空闲区 ? B 有上邻(前邻、低址)空闲区,但无下邻(后邻、高址)空闲区 ? C 有下邻(后邻、高址)空闲区,但无上邻(前邻、低址)空闲区 ? D 有上邻(前邻、低址)空闲区,也有下邻(后邻、高址)空闲区 正确答案:C

几种常用的分页技术

综述 分页,是一种将所有数据分段展示给用户的技术.用户每次看到的不是全部数据,而是其中的一部分,如果在其中没有找到自习自己想要的内容,用户可以通过制定页码或是翻页的方式转换可见内容,直到找到自己想要的内容为止.其实这和我们阅读书籍很类似. 下页显示了两种常见的分页方式. 意义 分页确实有效,但它一定会加大系统的复杂度,但可否不分页呢?如果数据量少的话当然可以.但是对于企业信息系统来说数据量不会限制在一个小范围内. 如果不顾一切的Select * from某个表,再将返回的数据一古脑的扔给客户,即使客户能够忍受成千上万足够让人眼花缭乱的表格式数据,繁忙的网络,紧张的服务器也会提出它们无声的抗议,甚至有时会以彻底的罢工作为终结.这个结局有点像古代为所欲为的暴君和他忍无可忍的臣民之间的故事. 程序员不是暴君,他希望程序使生活变得更好而不是更糟.考虑到企业信息系统多是三层甚至更多层架构的事实,程序员在向客户展示数据时都应该采取分页的形式.如果他不想被抱怨淹没或是半夜被电话惊醒的话. 从请求发起到返回数据的整个过程 现在你已经下定决心想要分页了,在动手书写代码之前,先让我们回想一下,在典型的三层架构中,从请求发起到返回数据的整个过程.如下所示:

在哪里进行分页 从上面的图中我们可以观察得知,在SQL语句处理完毕后,数据库,WebApplication和Browser都能进行分页,那在哪里分页好呢? 判断的标准是速度,显而易见,数据库服务器,Web应用服务器和客户端之间是网络,如果网络传递的数据量越少,则客户端获得响应的速度越快.而且一般来说,数据库服务器和Web应用服务器的处理能力一般比客户端要强很多.从这两点来看,在客户端分页的方案是最不可取的. 其次就剩下了在Web服务器端分页和在数据库端分页两种方式了,如果选择在Web服务器端分页的话,大部分的被过滤掉的数据还是被传输到了Web应用服务器端,与其这样还不如直接在数据库端进行分页. 分页的SQL语句 如果我们是通过JDBC的方式访问数据库,那么就有必要根据数据库类型采取不同的SQL分页语句,对于MySql数据库,我们可以采用limit语句进行分页,对于Oracle数据库,我们可以采用rownum的方式进行分页. MySql的Limit m,n语句 Limit后的两个参数中,参数m是起始下标,它从0开始;参数n是返回的记录数。我们需要分页的话指定这两个值即可. 如右是limit语句的一次应用,图示的SQL语句返回报销记录表中第四,第五条报销额度最大的记录。

相关文档
最新文档