总结
豆包 AI 助手文章总结

在 Laravel 5 中集成 Pjax 实现无刷新加载页面的扩展包 -- Laravel Pjax

php中文网
发布: 2016-06-23 09:15:08
原创
1305人浏览过

1、简介

Pjax 是一个 jQuery 插件,其作用是使用 ajax 来加速页面加载时间,工作原理是只从服务器获取指定 HTML 片段,然后客户端使用获取到的内容更新局部页面。

Laravel Pjax 扩展包将 Pjax 集成到 Laravel 中,实现原理是提供一个中间件,返回 Pjax 期望的响应内容。

2、安装

通过 Composer 安装扩展包:

$ composer require spatie/laravel-pjax
登录后复制

接下来需要在 Kernel.php 中注册中间件,这里我们将其注册到web中间件组:

// app/Http/Kernel.phpprotected $middlewareGroups = [    'web' => [        ...        \Spatie\Pjax\Middleware\FilterIfPjax::class,    ],    ...];
登录后复制

3、使用

该扩展包提供的中间件会处理服务端返回的内容并将其转化为 Pjax 插件期望服务端返回的内容。

这里我们以 php artisan make:auth 命令生成的默认视图文件为例演示其使用,首先我们修改路由文件 routes.php :

Route::group(['middleware' => 'web'], function () {    Route::get('/', function () {        return view('welcome');    });    Route::get('/home', 'HomeController@index');    Route::auth();});
登录后复制

然后我们还需要修改默认布局文件 layouts/app.blade.php ,添加 Pjax 设置:

...<div class="main-content" id="pjax-container">    @yield('content')</div><!-- JavaScripts --><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script><script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>{{-- <script src="{{ elixir('js/app.js') }}"></script> --}}<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.pjax/1.9.6/jquery.pjax.min.js"></script><script>    $(document).pjax('a', '#pjax-container');    $(document).on("pjax:timeout", function(event) {        // 阻止超时导致链接跳转事件发生        event.preventDefault()    });</script></body></html>
登录后复制

这样我们就可以在浏览器中访问进行测试了:

你会发现在切换登录/注册按钮时页面不会发生跳转而直接进行刷新。

注:该扩展包会设置一个 X-AJAX 请求头以区别 pjax 请求和普通的 XHR 请求。在这种情况下,如果请求是 pjax,我们会跳过页面布局部分 HTML,只渲染页面主体部分内容。

Laravel 缓存失效

我们使用 Laravel Elixir 来管理前端缓存失效,你可以使用这种方法来让 Pjax 的缓存失效 —— 只需要引入 elixir 方法作为 x-pjax-version meta 的 content 即可:

<meta http-equiv="x-pjax-version" content="{{ elixir('css/app.css') }}">
登录后复制

如果是多个文件的话这使用:

<meta http-equiv="x-pjax-version" content="{{ elixir('css/app.css') . elixir('css/app2.css') }}">
登录后复制

这样的话,如果前端缓存失效,那么 Pjax 的缓存随之自动失效。

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
豆包 AI 助手文章总结
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号