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.在需使用无刷新分页的页面里加入:
<%= javascript_include_tag :defaults %>
3.修改本页的分页方法,改为:
<%= will_paginate_remote (@blogs,:update=>'blogs',:url=>nil,:prev_label=>'上一页',:next_label=>'下一页',:separator=>" | ")%>

ok,大功告成,这样一个Ajax分页就做完了,是不是非常快呐。这也正是其魅力所在。想想用jquery+java去实现
这个功能肯定花费的时间会很多。但是这么着就做完了,的确快的让人受不了。比拖.net控件还爽。

哎,发现自己越来越懒了,发篇帖子鞭策下自己,加油!
继续完善我的项目,等开通以后,我会写一篇这个项目的架构设计,交流,共进。

posted on   俱正Steven  阅读(1115)  评论(5编辑  收藏  举报

编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示