jQuery pjax 簡單入門


  工作站要做一個類似百度雲盤的項目,其中提到了pajx技術,之前從來沒接觸過這個玩意,今天小試牛刀。去網上找了一些教程,只能說百度相當不靠譜,找到的東西幾乎都不能用,還是GitHub好,么么噠!https://github.com/defunkt/jquery-pjax

  Pjax是ajax的升級版,怎么理解呢,當初學習ajax的時候講了ajax的優缺點,其中一個缺點是破壞了瀏覽器的前進后退,因為ajax的請求不會留在歷史記錄中。pjax就不一樣了,pjax被解釋成ajax+pushState的封裝,因為它把ajax的請求寫入歷史記錄,並反映在地址欄,這樣用戶就能愉快地使用前進后退了。pjax有好幾個實現方法,這里使用最常用的Jquery庫,使用jquery.pjax.js。演示代碼的服務器端使用PHP腳本語言。

  Pjax用在那兒?就說百度雲盤吧,這個大家肯定都用過。百度雲盤PC端,在點擊打開某個文件夾后會打開這個文件夾下的文件,其實顯示文件的這個div就用到了pjax技術。地址欄變換,內容更換,但是卻是一個ajax請求。等到后退的時候,不必重新請求上一層文件夾的內容,因為是存在在歷史記錄中的。而且,開發者還可以選擇時候使用cache和storage緩存。

DEMO1:

客戶端:

<!DOCTYPE html>
<html>
<head>
  <title>pjax</title>
    <meta charset="utf-8">
</head>
<body>
  <h1>My Site</h1>
  <div>
    Go to <a href="res1.php">第一頁</a>.<a href="res2.php">第二頁</a>
  </div>
  <div id="container"></div>    
</body>
<script src="../jquery-2.1.4.min.js"></script>
<script src="../jquery.pjax.js"></script>
<script type="text/javascript">
$(document).pjax('a', '#container')
</script>
</html>

服務器端:

res1.php

<?php 
echo "<div style='background:red;'>第一頁</div>";

res2.php

<?php 
echo "<div style='background:red;'>第二頁</div>";

解釋:$(document).pjax('a', '#container')其中a是觸發元素,#container是裝載pjax返回內容的容器,下面也是這樣。

DEMO2:

客戶端:

<!DOCTYPE html>
<html>
<head>
  <title>pjax</title>
    <meta charset="utf-8">
</head>
<body>
  <h1>My Site</h1>
  <div>
    <input type="button" id="th" value="GO">
  </div>
  <div id="container"></div>    
</body>
<script src="../jquery-2.1.4.min.js"></script>
<script src="../jquery.pjax.js"></script>
<script type="text/javascript">
$(function(){
    $('#th').click(function(){
        $.pjax({
            url: './res3.php',
            container: '#container'
        });
    });
});
</script>
</html>

服務器端代碼:

res3.php:

<?php 
echo "<div style='background:red;'>第三頁</div>";

恩啊,就是這樣!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM