Yii 笔记:Pjax整理

走在 php 的路上:Pjax整理

首先什么是pjax,官方解释自己搜一下,对于现在的我来说,pjax 就是将我们平常写的 ajax 加以优化了一下。
优点:
    1、一样的局部刷新,但是 pjax 可以更新 url
    2、带页码的内容使用 pjax,在退后时可到上一个访问页面
    3、。。。等发现了再来补充

缺点:
    1、不支持一些低版本的浏览器(如IE系列)
    2、。。。等发现了再来补充

注:我所使用的是Yii 框架下的 pjax。

记录两个经常使用到的函数:
使用 pjax 的链接点击后,加载时的函数

$(document).on('pjax:send', function() {
    // 函数内容
}

使用 pjax 的链接点击后,加载完成后的函数

$(document).on('pjax:complete', function() {
    // 函数内容
}

还有其他参数:
我就不一一写啦,推荐去看pjax使用小结,写的很详细

遇到的问题:
1、加载后依然会刷新页面,但点击两三次之后又恢复正常
原因:查了一下,原来是因为 Yii 自带的 pjax 组件设置超时时间是1s,超过了 1s 就会像我们 ajax 请求一样,页面重新加载。
解决:在调用 pjax 时,传入参数 enablePushState 和 timeout,我在下面粘贴了源码给的参数解释。

/**
* @var boolean whether to enable push state.
*/
/**
* @var integer pjax timeout setting (in milliseconds). This timeout is used when making AJAX requests.
* Use a bigger number if your server is slow. If the server does not respond within the timeout,
* a full page load will be triggered.
*/
<?php Pjax::begin(['enablePushState' => false,'timeout' =>5000]); ?>
   <?= ListView::widget([
       'dataProvider' => $dataProvider,
       'itemOptions'  => ['class' => 'waterfull-item'],
       'summary' => '',
       'itemView' => function ($model, $key, $index, $widget) {
              return $this->render('_picture',[
                   'model'=>$model,
                   'key'=>$key,
                   'index'=>$index,
                   'widget'=>$widget
              ]);
        },
  ]) ?>
<?php Pjax::end();?>

其他的问题,遇到了,会慢慢补充上去

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值