正在用django做一個社群網站  notewo.com ,其實想到要實現像google+ 那樣的滾動載入功能。一直在想怎麼做才好。

現在整理出來的步驟如下:

第一步、實現django的分頁功能。

 

  1. vim views.py 
  2. from django.core.paginator import Paginator,InvalidPage,EmptyPage 
  3.  
  4.  
  5. def myBlog(request): 
  6.     form = PostForm(request.POST) 
  7.     commentform = CommentForm() 
  8.      
  9.     posts_list  = Blog.objects.order_by(`-date`).all() 
  10.   
  11.     paginator = Paginator(posts_list,20)  #顯示20條記錄
  12.     try : 
  13.         page = int(request.GET.get(`page`,`1`)) 
  14.     except ValueError: 
  15.         page = 1 
  16.  
  17.     try : 
  18.          posts = paginator.page(page) 
  19.     except (EmptyPage,InvalidPage): 
  20.          posts = paginator.page(paginator.num_pages) 
  21.      
  22.     t = get_template(`notewo/blog.html`) 
  23.     c = RequestContext(request,locals()) 
  24.     return HttpResponse(t.render(c)) 

 

  1. {% for  post in posts.object_list %} 
  2.    <li class="box bloglist" > 
  3.        (這裡就隨便放你的html程式碼了) 
  4.    </li> 
  5.  {% endfor %} 
  6.    <li class="page"> 
  7.        <div class="pagination"> 
  8.               <span class="step-links"> 
  9.            {% if posts.has_previous %} 
  10.                   <a href="?page={{ posts.previous_page_number }}">previous</a> 
  11.            {% endif %} 
  12.  
  13.           <span class="current"> 
  14.                   Page {{ posts.number }} of {{  posts.paginator.num_pages }}. 
  15.           </span> 
  16.  
  17.               {% if posts.has_next %} 
  18.                     <a href="?page={{ posts.next_page_number }}" class="nextpage">next</a> 
  19.                        <a   class="nextpage2">next</a> 
  20.               {% endif %} 
  21.               </span> 
  22.        </div> 
  23.    </li> 

第二步、

你應該留意一下,上面我寫了一條:

 

  1. <a   class="nextpage2">next</a>  

的程式碼。小弟不才,只能借這種蠢方法。繼續往下

 

  1. function getnextpage(){ 
  2.  
  3.     $(".nextpage2").click(function(){ 
  4.         var href = $(".nextpage").attr("href"); 
  5.         console.log(href); 
  6.         $.ajax({ 
  7.             type:"get", 
  8.             url: href, 
  9.             success:function(data){ 
  10.              var html = $(data).find(".showblog").html(); 
  11.              $(".pageli").remove(); 
  12.              $(".showblog").append(html); 
  13.                 //重新繫結點選事件 
  14.                 getnextpage(); 
  15.             } 
  16.         }) ;//end ajax 
  17.     }); // end    $(".nextpage) 

$(“.showblog”) 是頂層的ul

$(“.nextpage2”) 被點選之後,觸發$(“.nextpage”),捕撈返回的資料,再把其中的li資料新增到ul的尾部。

如果大家想要實現滾動滾動到底部自動新增的話,再改進一下已經不難了。睡覺了