国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務器之家 - 編程語言 - JavaScript - 使用pjax實現無刷新更改頁面url

使用pjax實現無刷新更改頁面url

2021-08-05 16:04junjie JavaScript

pjax=pushState+ajax,相信用過github的同學都知道,github部分頁面采用了pjax這個項目來實現ajax無刷新加載的同時改變頁面url。一起來學習一下這個插件吧。

我們都知道ajax給瀏覽器帶來了異步加載的能力,在數據校驗、局部刷新等方面提升了用戶體驗,但同時存在如下問題:

1. 可以無刷新改變頁面內容,但無法改變頁面URL
2. hash的方式不能很好的處理瀏覽器的前進、后退等問題

為了解決傳統ajax帶來的問題,HTML5里加強了history API,加入了pushState、replaceState接口和popstate事件。這里就不詳細介紹了,沒有這方面知識的同學建議先看一下相關的資料。

pjax插件封裝了pushState和ajax操作,為我們提供了一個開發這這類web應用的簡單方法,具體步驟如下:

定義需要局部更新的容器

<div id="container"></div>
初始化pjax,監聽URL

 

復制代碼 代碼如下:

$(function(){
// pjax
$(document).pjax('a', '#container');
$.pjax.reload('#container');
})

 

后端處理pjax請求

后端的處理邏輯是,首先判斷是不是pjax請求,如果是的話,根據請求參數返回局部內容,否則返回layout布局,然后由`$.pjax.reload('#container');`發起pjax請求。根據以上邏輯可以寫出如下代碼:

 

復制代碼 代碼如下:

var pjaxFilter = function(req, res, next) {
if (req.get('X-PJAX')) {
next();
return;
}
//如果不是pjax請求的話直接返回布局模板
res.render('layout', { title: 'Pjax simple demo' });
};
router.get('/', pjaxFilter, function(req, res) {
res.render('index');
});
router.get('/poem/:id', pjaxFilter, function(req, res) {
var poemId = req.params.id;
res.render('poem/' + poemId);
})

 

完整代碼:pjax-demo

這只是pjax最基礎的功能,pjax提供了豐富的api,請訪問:jquery-pjax

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日韩精品观看 | 久热亚洲 | 免费亚洲网站 | av电影一区 | 午夜专区 | 亚洲综合精品 | 亚洲午夜视频在线观看 | 欧美综合婷婷 | 国产成人一区二区 | 天天看天天爽 | 99福利视频 | 国产成人综合av | 日本黄色大片 | 亚洲天堂影院 | 欧美日韩在线一区二区三区 | 精久久 | 青青草视频在线免费观看 | 国产黄| 亚洲成人精品视频 | 偷拍一区二区 | 97精品国产97久久久久久免费 | 日韩欧美在线一区 | 亚洲少妇视频 | 免费观看av | 亚洲精品久久久久久久久久久久久 | 国产精品网站在线观看 | 亚洲第一成年人网站 | 综合自拍偷拍 | 中文字幕精品一区 | 精品无人乱码一区二区三区 | 日韩欧美精品 | 欧美精品一区二区三区在线播放 | 国产视频一区二区三区在线观看 | 婷婷久久久 | 91精品国产综合久久福利软件 | 精品国产免费久久久久久尖叫 | 91精品国产一区二区三区 | 国产欧美精品区一区二区三区 | 日本一区不卡 | 亚洲综合一二区 | 亚洲天堂中文 |