在Laravel应用中如何使用pjax进行页面加速
发布时间 - 2021-06-23 00:00:00 点击率:次说明:phphub 使用 pjax 来加速网页的加载, 这篇文章是在开发完此功能后做的笔记.
相关推荐:《laravel教程》
什么是 Pjax
.--.
/ \
## a a
( '._)
|'-- |
_.\___/_ ___pjax___
."\> \Y/|<'. '._.-'
/ \ \_\/ / '-' /
| --'\_/|/ | _/
|___.-' | |`'`
| | |
| / './
/__./` | |
\ | |
\ | |
; | |
/ | |
jgs |___\_.\_
`-"--'---'项目地址见 这里, 官方的介绍:
pushState + ajax = pjax
详细的解释请看 知乎上的这个问题, 或者自己去查阅资料.
简单点描述, 就是利用 ajax 技术去服务器获取文档, 在不刷新浏览器页面的情况下, 更新当前页面, 并且能保证页面的js 和 css 等 assets 文件不会被重复加载, 然后利用浏览器提供的 pushState 功能, 对 URL 进行更新, 并能保证用户通过点击 back 按钮回溯到历史页面.
注意: 并不是所有浏览器都支持 pushState, 关于浏览器的兼容请见这里, 当浏览器不兼容的时候, 会自动使用原始的浏览方式进行访问.
为什么要使用 Pjax
因为不需要整个页面刷新, 并且 assets 文件都不需要重新加载, 很大程度上提高了页面的加载速度.
服务端安装 rcrowe/Turbo
使用 package rcrowe/Turbo .
安装 rcrowe/Turbo#
在 composer.json 里的 require 属性下添加:
"rcrowe/turbo": "0.2.*"
然后 composer update 或者 composer install
配置 Providers#
编辑 app/config/app.php 文件, 在选项 providers 数组里面添加:
"Turbo\Provider\Laravel\TurboServiceProvider",
下载 pjax.js
在 public\js 文件夹下
wget https://raw.github.com/defunkt/jquery-pjax/master/jquery.pjax.js
然后在模版里面加载此文件
最后页面里调用:
$(document).ready(function(){ $(document)
.pjax('a', 'body');});上面的代码解释是, 把所有的 a 标签的点击事件截获, 如果当前浏览器支持 pjax 的话, 发送一个 ajax 请求, 并把参数_pjax=body 带过去.
如果一起顺利的话, 在 Chrome 的 debuger 里能看到类似于这样的请求:
至此, 已经顺利配置完毕.
添加加载动画#
接下来要来添加一个页面加载的动画, 效果如下:
添加 nprogress#
使用 rstacruz/nprogress 来实现.
添加的方法是 下载 文件, 然后把 nprogress.js 和 nprogress.css 添加到页面中:
调用#
修改上面的代码, 修改后的代码如以下:
$(document).ready(function(){ $(document).pjax('a', 'body'); $(document).on('pjax:start', function() {
NProgress.start(); }); $(document).on('pjax:end', function() {
NProgress.done();
self.siteBootUp(); });});这样的话, 每一次点击页面的时候就会有很酷炫的效果了
# laravel
# php
# composer
# json
# css
# ajax
# chrome
# require
# public
# JS
# 事件
# 加载
# 要使
# 服务端
# 是在
# 都不
# 不需要
# 这个问题
# 这篇文章
# 要来
# 并能
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
怎么用AI帮你设计一套个性化的手机App图标?
如何批量查询域名的建站时间记录?
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
如何快速搭建高效香港服务器网站?
PHP正则匹配日期和时间(时间戳转换)的实例代码
手机网站制作与建设方案,手机网站如何建设?
Swift中循环语句中的转移语句 break 和 continue
历史网站制作软件,华为如何找回被删除的网站?
潮流网站制作头像软件下载,适合母子的网名有哪些?
Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南
ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集
如何在腾讯云服务器快速搭建个人网站?
如何在建站之星网店版论坛获取技术支持?
Laravel distinct去重查询_Laravel Eloquent去重方法
免费网站制作appp,免费制作app哪个平台好?
香港服务器如何优化才能显著提升网站加载速度?
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
Python文件操作最佳实践_稳定性说明【指导】
Windows10如何更改计算机工作组_Win10系统属性修改Workgroup
佛山企业网站制作公司有哪些,沟通100网上服务官网?
南京网站制作费用,南京远驱官方网站?
Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】
高端企业智能建站程序:SEO优化与响应式模板定制开发
在centOS 7安装mysql 5.7的详细教程
网站制作企业,网站的banner和导航栏是指什么?
个人网站制作流程图片大全,个人网站如何注销?
如何挑选高效建站主机与优质域名?
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
如何在搬瓦工VPS快速搭建网站?
Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧
如何用西部建站助手快速创建专业网站?
如何在云服务器上快速搭建个人网站?
JavaScript Ajax实现异步通信
html5audio标签播放结束怎么触发事件_onended回调方法【教程】
三星网站视频制作教程下载,三星w23网页如何全屏?
Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】
Laravel用户密码怎么加密_Laravel Hash门面使用教程
新三国志曹操传主线渭水交兵攻略
Linux系统命令中tree命令详解
C#如何调用原生C++ COM对象详解
如何快速打造个性化非模板自助建站?
Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程
Laravel Blade模板引擎语法_Laravel Blade布局继承用法
如何快速生成高效建站系统源代码?
微信小程序制作网站有哪些,微信小程序需要做网站吗?
如何快速重置建站主机并恢复默认配置?
深圳网站制作平台,深圳市做网站好的公司有哪些?
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
做企业网站制作流程,企业网站制作基本流程有哪些?


.pjax('a', 'body');});