rails2.3 Ajax分页 实现方案
有段时间没发帖了,一来自己经历了一个压力很大的六月(考试+项目紧促),暑假还要继续完善项目。所以就一直没有心思写点什么。
说实话,完善功能确实是个枯燥的劳动。弄着弄着就不想弄了,也许是因为这个东西我弄了很久的缘故吧。累了就愿意逛逛网站啥的,看看技术帖子,
听听歌,其实说累也谈不上,毕竟假期我已经没有什么学习上的顾虑。就是看了烦,因为现在这个系统的架构让我越搞越复杂,每一步调整我都要小心,怕影响其
他模块。我更想给自己充充电,学习学习自己感兴趣的技术。因为我清楚的知道自己技术上的不足。
今天看到一个毕业的师兄发了篇翻译的技术文章,讲PHP优化的,我很是佩服,因为他对技术的追求永远那么炙热,团博里最新更新的几篇文章都是他的。
让我多多少少觉得自己该写点什么,但是还是有些犹豫,后来在他的园子空间看到他的博文关注里只有俺的技术博客的时候,俺啥也不说了,就开始写这篇文章。也许是
我不太喜欢发文章到团博里吧。总之这让我看到了许许多多激励我的人。我的QQ技术群也有180多个喜爱技术并且愿意和我交流的人加入,不管是高手还是新手,我都
很感谢他们,也越发觉得自己不够意思,总是潜水,没有真正做到沟通与交流。想到这,我觉得我自己应该振作,即使知道以后的道路会很苦,也要坚持的走下去。因为
我已经做出了人生的选择。
rails我用的是最新版本2.3,rails发展至今很快得到web开发人员的推崇,因其快速敏捷的开发而闻名。但是我可能是习惯了Java的开发模式,觉得rails
给我的感觉就是搭积木,拼拼图。快的确是快,比j2ee快很多倍,但是让我觉得这个架构并不在我的掌控之下,封装的太紧密了,就连方法都给你封装好,让我直接使用,
估计是我刚入门吧,没有对他有足够了解。
实例:Ajax分页
1.首先扩展will_paginate插件,因为插件默认是不支持的,在插件中找到view_helpers.rb源文件。
添加代码:
def will_paginate_remote(paginator, options={})
update = options.delete(:update)
url = options.delete(:url)
str = will_paginate(paginator, options)
if str != nil
str.gsub(/href="(.*?)"/) do
"href=\"#\" onclick=\"new Ajax.Updater('" + update + "', '" + (url ? url + $1.sub(/[^\?]*/, '') : $1) +
"', {asynchronous:true, evalScripts:true, method:'get'}); return false;\""
end
end
end
2.在需使用无刷新分页的页面里加入:update = options.delete(:update)
url = options.delete(:url)
str = will_paginate(paginator, options)
if str != nil
str.gsub(/href="(.*?)"/) do
"href=\"#\" onclick=\"new Ajax.Updater('" + update + "', '" + (url ? url + $1.sub(/[^\?]*/, '') : $1) +
"', {asynchronous:true, evalScripts:true, method:'get'}); return false;\""
end
end
end
<%= javascript_include_tag :defaults %>
3.修改本页的分页方法,改为:<%= will_paginate_remote (@blogs,:update=>'blogs',:url=>nil,:prev_label=>'上一页',:next_label=>'下一页',:separator=>" | ")%>
ok,大功告成,这样一个Ajax分页就做完了,是不是非常快呐。这也正是其魅力所在。想想用jquery+java去实现
这个功能肯定花费的时间会很多。但是这么着就做完了,的确快的让人受不了。比拖.net控件还爽。
哎,发现自己越来越懒了,发篇帖子鞭策下自己,加油!
继续完善我的项目,等开通以后,我会写一篇这个项目的架构设计,交流,共进。
作者:Steven(Steven's Think out)
出处:http://shiyangxt.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库