`
johnnyhg
  • 浏览: 347207 次
  • 来自: NA
社区版块
存档分类
最新评论

Ajax pagination

阅读更多

Ajax pagination

ttp://wiki.github.com/mislav/will_paginate/ajax-pagination

 

This is the most popular feature request for will_paginate library. Reasons why the core library doesn’t support this are:

 

 

  1. pagination is a concept decoupled from HTTP requests and rendering;
  2. Ajax pagination is done differently across web frameworks;
  3. Ajax is done differently across JavaScript libraries (not everyone uses Prototype);
  4. The JavaScript side of the Ajax pagination concept is not trivial at all.

So the short reason why you can’t get Ajax pagination out-of-the-box with this library is that this kind of functionality belongs to user code.

Here are some examples to get you on the right track.

Warning:
don’t use the “RemoteLinkRenderer” or similar solutions you might find on blogs using Rails’ link_to_remote helper. Such solutions are obtrusive and will usually make your app broken for web spiders and difficult to debug.

Basic unobtrusive Ajax pagination for Rails

Let’s suppose you have a search box and you want to paginate search results. The following code assumes that:

  1. the partial that renders those results is named “search_results”;
  2. the same partial renders all the results wrapped in a DIV with an ID “results”;
  3. the “results” DIV also contains the pagination links;
  4. you have a graphic progress indicator (a “spinner”) saved in “images/spinner.gif”.
# app/views/posts/_search_results.html.erb

<div id="results">
  <% for post in @posts %>
    ... render each post ...
  <% end %>
  <%= will_paginate @posts %>
</div>

First of all, make sure your controller responds to Ajax requests by updating the “results” DIV :

# app/controllers/posts_controller.rb

def index
  @posts = Post.paginate :page => params[:page]

  respond_to do |format|
    format.html
    format.js {
      render :update do |page|
        # 'page.replace' will replace full "results" block...works for this example
        # 'page.replace_html' will replace "results" inner html...useful elsewhere
        page.replace 'results', :partial => 'search_results'
      end
    }
  end
end

Next, the unobtrusive JavaScript code:

# public/javascripts/application.js

document.observe("dom:loaded", function() {
  // the element in which we will observe all clicks and capture
  // ones originating from pagination links
  var container = $(document.body)

  if (container) {
    var img = new Image
    img.src = '/images/spinner.gif'

    function createSpinner() {
      return new Element('img', { src: img.src, 'class': 'spinner' })
    }

    container.observe('click', function(e) {
      var el = e.element()
      if (el.match('.pagination a')) {
        el.up('.pagination').insert(createSpinner())
        new Ajax.Request(el.href, { method: 'get' })
        e.stop()
      }
    })
  }
})

分享到:
评论

相关推荐

    JQuery Pagination AJax 分页实例 For ASP.NET(JQuery+ashx+ADO.NET 实体数据模型)

    采用JQuery Pagination 插件,服务器端采用asp.net ashx,数据库操作采用LinQ TO Entity,实现异步分页操作实例。 具体介绍,详见:http://hi.baidu.com/tz666/item/73a676d9b171041821e250b0

    Jquery Pagination AJax 分页实例 For ASP

    本实例将详细讲解如何利用jQuery Pagination插件与AJAX技术在ASP环境中实现分页功能,同时连接到Access数据库进行数据读取。 **jQuery Pagination插件** 是一个轻量级的JavaScript组件,它提供了丰富的选项和事件,...

    jQueryPager(JQuery分页插件pagination实现Ajax分页)

    **jQueryPager:基于JQuery的Ajax分页插件Pagination实现** 在Web开发中,当数据量庞大时,分页是一种常见的优化用户体验的方式。jQueryPager是一款轻量级的jQuery分页插件,它允许开发者通过Ajax无刷新的方式实现...

    ajax无刷新分页jquery.pagination插件

    总的来说,通过`jQuery.pagination`插件,开发者可以快速实现Ajax无刷新分页,提高网页的响应速度和用户互动性。结合合理的后端设计,可以实现高效的数据加载和展示,使得大量数据的管理变得更加轻松。在实践中,...

    jQuery Ajax分页插件(jquery.pagination)

    `jQuery Pagination Plugin`是针对jQuery设计的一个Ajax分页插件,用于实现高效且用户友好的分页功能。 ### jQuery分页插件的基本概念 1. **Ajax**:异步JavaScript和XML,允许页面与服务器进行通信,更新部分页面...

    jQuery Pagination Ajax 分页插件.rar

    jQuery Pagination Ajax 分页插件,本插件实现的分页效果适合移动版和PC版,Ajax在不实现刷新网页的情况下,控制内容分页显示,实现这一功能,需要前台和后台两者结合 ,前台也就是本款代码所展现的功能,实现Ajax的...

    ajax-static-pagination_Pagination_ajax_static_

    为了解决这一问题,Ajax(Asynchronous JavaScript and XML)技术应运而生,其中的静态分页(Ajax Static Pagination)是实现高效数据加载的有效手段。 ### 1. 分页概念 分页是一种将大量数据分割成小块,每次只...

    15个精美的jq分页插件

    14. **Ajax Pagination with jQuery**:通过Ajax请求加载新的分页内容,提供平滑的过渡效果。 15. **jQuery PaginateIt**:一个高度定制的分页插件,支持多种分页样式和自定义事件。 每个插件都有其独特的优势和...

    Jquery Pagination Ajax 分页实例 For ASP.NET MVC3(用Ado.Net Entity Framework作数据操作)

    用Jquery Pagination插件,服务器端用ASP.NET MVC3做的一个分页实例,详见:http://hi.baidu.com/tz666/item/7b401707a3e76fdb73e676d4

    增加了跳转功能的bootstrap后台真ajax分页控件pagination在asp.net mvc的使用

    总结,本教程介绍了如何在ASP.NET MVC项目中使用Bootstrap pagination,通过Ajax实现后台真分页并添加跳转功能。这个过程涉及到jQuery的事件处理、Ajax请求、控制器方法的编写以及前端数据的更新。同时,也展示了与...

    Ajax-ajax-search-pagination.zip

    Ajax-ajax-search-pagination.zip,ajax搜索 使用laravel和vuejs分页,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页,其中网页的小部分在不重新...

    jquery.pagination 异步 分页

    &lt;script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-pagination/1.2.8/jquery.pagination.min.js"&gt; ``` 3. **HTML结构**:创建基本的HTML结构,包括显示数据的容器和分页控件。 ```html ...

    使用AJAX动态生成table表格数据和jquery.pagination.js 的分页栏

    本文将详细介绍如何使用AJAX技术以及jQuery库中的`jquery.pagination.js`插件来实现这一目标。AJAX(Asynchronous JavaScript and XML)允许我们在不刷新整个页面的情况下与服务器交换数据并更新部分网页内容,而`...

    jquery插件pagination实现无刷新ajax分页

    jQuery 插件 Pagination 是一种用于实现无刷新 AJAX 分页的工具,它允许用户在不重新加载整个页面的情况下浏览大量数据的多个页面。无刷新分页是提高用户体验的关键,因为它减少了服务器负载并加快了页面响应速度。 ...

    JQuery技术

    5. **AJAX分页(Ajax Pagination)**: 配合服务器端分页,实现点击分页按钮时,仅加载新的内容区域,提高用户体验。 ### 三、学生信息管理系统项目 在学生信息管理系统项目中,jQuery可以扮演以下角色: 1. **...

    mvc无刷新分页

    在现代Web开发中,用户对界面交互体验的要求越来越高,其中,无刷新分页(Ajax Pagination)成为提高用户体验的重要手段。无刷新分页允许用户在不重新加载整个页面的情况下,仅更新页面的一部分内容,即分页区域。在...

    无刷新,异步分页插件

    "无刷新,异步分页插件"可能指的是如jQuery Pagination、jQuery Ajax Pagination或Bootstrap-Pagination等插件。这些插件通常具备以下特点: 1. **异步加载**:通过Ajax技术,当用户滚动到底部或点击分页按钮时,...

    无刷新分页 pagination

    在Jquery无刷新分页的实现中,`jquery.pagination.js`通常与后端数据库交互,通过AJAX(Asynchronous JavaScript and XML)技术来获取和展示数据。AJAX的核心在于创建XMLHttpRequest对象,发送异步请求到服务器,...

    pagination

    ajax异步分页 pagination ajax异步分页 paginationajax异步分页 paginationajax异步分页 paginationajax异步分页 paginationajax异步分页 paginationajax异步分页

    Jquery.Pagination.js + Jquery.Ajax + ASP.NET----无刷新分页Pagination 1.5.1

    Jquery.Pagination.js + Jquery.Ajax + ASP.NET----无刷新分页Pagination 1.5.1,是在原作者基础上修改的,因为Pagination 1.5.1与它的低版本有很大的区别,所以在此实例中增加了新版的使用方法

Global site tag (gtag.js) - Google Analytics