日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

黄聪:pjax使用心得总结

發布時間:2023/12/15 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 黄聪:pjax使用心得总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

初次結識pjax是在使用tower時鐘發現的。當時使用時發現網站可以局部刷新,當然我們知道使用ajax也是可以實現局部刷新的。

然而我們知道,使用ajax進行局部刷新時網站的title是不會變化的,并且使用瀏覽器的后退按鈕也不能使網站返回上個狀態,這時候我們就需要使用pjax了。

?

關于pjax,推薦先閱讀幾個文章

http://my.oschina.net/sub/blog/123447?fromerr=s5Bgun3z

https://github.com/defunkt/jquery-pjax?為pjax的github項目地址

?

在github的項目地址里有關于pjax的詳細說明和使用方法,這里不再贅述,本文主要是使用中的一些代碼記錄和使用心得,方便以后查閱快速上手使用。

看下下述小段代碼:

?

[html]?view plain?copy
  • <div?class="body">??
  • ????<?php?$action_name?=?$Think.ACTION_NAME;??>??
  • ??
  • ????<!--?頭部喲?-->??
  • ????<?php?if?($action_name?==?'news'):??>??
  • ????????<include?file="Brand:header_news"?/>??
  • ????<?php?elseif?($action_name?==?'forum'):??>??
  • ????????<include?file="Brand:header_forum"?/>??
  • ????<?php?endif;??>??
  • ??
  • ????<!--?資訊的二級分類?-->??
  • ????<div?class="cb"></div>??
  • ????<div?class="brand-news-nav?pjax">??
  • ????????<ul?class="clearfix">??
  • ????????????<li?<?php?if($_GET['cat']?==?'')?echo?'class="selected"';??>><a?class="first"?href="{:U("Brand/$action_name")}">全部</a></li>??
  • ????????????<volist?name="cat_list"?id="vo"?key="i">??
  • ????????????????<li?<?php?if($_GET['cat']?==?$vo['id'])?echo?'class="selected"';??>><a?href="{:U("Brand/$action_name",array('cat'=>$vo['id']))}">{$vo.name}</a></li>??
  • ????????????</volist>??
  • ????????</ul>??
  • ????</div>??
  • ??
  • ????<script?type="text/javascript">??
  • ????????$(function(){??
  • ????????????$(document).pjax('.pjax?a',?'#pjax-container',{??
  • ????????????????type:'post',??
  • ????????????????scrollTo:false,??
  • ????????????});??
  • ????????????$(document).on('pjax:click',?function()?{??
  • ????????????????enable_loading?=?false;??
  • ????????????})??
  • ????????????$(document).on('pjax:send',?function(){??
  • ????????????????var?str?=?"<p?class='tc?mt-10'>加載中...</p>";??
  • ????????????????$('#pjax-container').html(str);??
  • ????????????})??
  • ??
  • ????????????//最后一個右側加邊框??
  • ????????????$(".brand-news-nav?ul?li").last().children('a').addClass('last');??
  • ????????????$(".brand-news-nav?ul?li").click(function(){??
  • ????????????????$(this).addClass('selected').siblings().removeClass('selected');??
  • ????????????})??
  • ????????})??
  • ????</script>??
  • ??
  • ????<!--?文章列表頁?-->??
  • ????<div?class="wrap?clearfix">??
  • ????????<div?class="brand-news-list?fl"?id="pjax-container">??
  • ????????????<include?file="Brand:article_pjax"?/>??
  • ????????</div>??
  • ????????<div?class="brand-news-right?fr?pb-20">??
  • ????????????<a?href="{$adv3[0]['url']}"><img?class="scrollLoading"?data-url="{$adv3[0]['images']|showImagePath}"?src="__PUBLIC__/index/images/loading270x160.gif"?width="260"?height="150"></a>??
  • ????????????<p?class="title?mt-10">法律支持</p>??
  • ????????????<ul?class="bgc-fff">??
  • ????????????????<volist?name="law_list"?id="vo">??
  • ????????????????????<a?href="{:U('law',array('id'=>$vo['id']))}"><li>{$vo.name}</li></a>??
  • ????????????????</volist>??
  • ????????????</ul>??
  • ????????????<button?class="btn?btn-right?mt-10?btn-consult">免費咨詢</button>??
  • ????????????<script?type="text/javascript">??
  • ????????????????$(function(){??
  • ????????????????????//最后一個需要添加一個last的樣式??
  • ????????????????????$(".brand-news-right?li:last").addClass('last');??
  • ????????????????})??
  • ????????????</script>??
  • ????????</div>??
  • ????</div>??
  • </div>??
  • ?

    服務器端處理

    ?

    [php]?view plain?copy
  • if(is_pjax()){??
  • ????$this->display('article_pjax');??
  • }else{??
  • ????$this->display('article');??
  • }??

  • [php]?view plain?copy
  • //判斷是否是pjax請求??
  • function?is_pjax(){??
  • ????return?array_key_exists('HTTP_X_PJAX',?$_SERVER)?&&?$_SERVER['HTTP_X_PJAX'];??
  • }??

  • 其中的主要思想就是當 ? ? .pjax a ? ?進行點擊的時候,將#pjax-container的內容替換為請求后的內容。在后端處理時需要判斷是否是pjax請求,如果是需要進行局部渲染,如果不是進行全部渲染。

    因為pjax用到了html5技術,如果瀏覽器不支持html5那么網站會正常進行跳轉式的加載,如果支持那么只是進行局部渲染(但是瀏覽器地址欄中的url會正常跟著a鏈接進行變動)。

    注意上述的js代碼中在配置pjax時有個參數scrollTo:false,加上此參數表示點擊連接后網頁的scrollBar不會變動,如沒有此參數,每次點擊時瀏覽視窗會自動跳轉到網頁頂部

    版權聲明:本文為博主原創文章,如需轉載,請注明出處。 https://blog.csdn.net/ROVAST/article/details/50678336

    轉載于:https://www.cnblogs.com/huangcong/p/8652276.html

    總結

    以上是生活随笔為你收集整理的黄聪:pjax使用心得总结的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。