spatie / laravel-pjax
Laravel 5 的 pjax 中间件
Requires
- php: ^7.2|^8.0
- illuminate/http: ^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
- illuminate/support: ^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
- symfony/css-selector: ^4.0|^5.0|^6.0|^7.0
- symfony/dom-crawler: ^4.0|^5.0|^6.0|^7.0
Requires (Dev)
- phpunit/phpunit: ^8.0|^9.0|^10.5
README
Pjax 是一个利用 AJAX 加速页面加载时间的 jQuery 插件。它通过只从服务器获取特定的 HTML 片段,并在页面的特定部分进行客户端更新来实现。
该包提供了一种中间件,可以返回 jQuery 插件期望的响应。
由 @barnabaskecskes 提供了一个无需 jQuery 的等价 Vue-PJAX 适配器 Vue-PJAX Adapter。
Spatie 是一家位于比利时的安特卫普的网页设计公司。您可以在我们的网站上找到我们所有开源项目的概述 on our website。
支持我们
我们投入了大量资源来创建 best in class open source packages。您可以通过 购买我们的付费产品之一 来支持我们。
我们非常感谢您从您的家乡寄给我们明信片,说明您正在使用我们的哪个包。您可以在我们的 联系页面 上找到我们的地址。我们将发布收到的所有明信片 在我们的虚拟明信片墙上。
安装
您可以通过 composer 安装此包
$ composer require spatie/laravel-pjax
接下来,您必须将 \Spatie\Pjax\Middleware\FilterIfPjax
中间件添加到内核。
// app/Http/Kernel.php ... protected $middleware = [ ... \Spatie\Pjax\Middleware\FilterIfPjax::class, ];
使用
提供的中间件提供了 pjax 插件期望的服务器行为
设置了一个 X-PJAX 请求头,以区分 pjax 请求和常规 XHR 请求。在这种情况下,如果请求是 pjax,我们将跳过布局 HTML,只渲染容器的内部内容。
Laravel 缓存破坏提示
当使用 Laravel Mix 管理您的前端缓存破坏时,您可以使用它来破坏 pjax 的缓存。只需将 mix
方法作为 x-pjax-version
元标签的内容即可
<meta http-equiv="x-pjax-version" content="{{ mix('/css/app.css') }}">
多个文件
<meta http-equiv="x-pjax-version" content="{{ mix('/css/app.css') . mix('/css/app2.css') }}">
这样,每次您的前端缓存被破坏时,pjax 的缓存也会自动被破坏!
更新日志
请参阅 CHANGELOG 了解最近更改的更多信息。
测试
$ composer test
贡献
请参阅 CONTRIBUTING 了解详细信息。
安全性
如果您发现有关安全的错误,请通过 [email protected] 发送电子邮件,而不是使用问题跟踪器。
鸣谢
此包中的中间件最初由 Jeffrey Way 为 Laracasts 上的 pjax 课程编写。他的原始代码可以在 GitHub 上的 此存储库 中找到。
许可
MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件。