blueweb / nette-ajax-history
为 Nette 框架 3 添加 History API 支持。
3.0.1
2024-05-15 19:19 UTC
Requires
- php: >=7.2
- nette/application: ~3.0
- nette/di: ~3.0
- nette/http: ~3.0
- nette/reflection: ~2.0
This package is auto-updated.
Last update: 2024-09-15 20:05:23 UTC
README
为 Nette 框架的 nette.ajax.js 插件添加 History API 支持!
此仓库是 vojtech-dobes/history.nette.ajax.js 包的一个分支,增加了对 Nette 3 的支持。
所有荣誉归功于 Vojtěch。谢谢!
安装
- 在
nette.ajax.js
之后链接client-side/history.ajax.js
。 - 使用 Composer 加载 PHP 文件:
blueweb/nette-ajax-history
- 在您的配置中注册配置扩展
extensions:
ajaxHistory: Blueweb\NetteAjax\HistoryExtension
使用方法
按正常方式编写您的应用程序。所有重定向和转发都将得到正确处理。
为了正确更新 UI,请使用片段。如果您计划将整个应用程序进行 Ajax 化,请考虑将此片段添加到 BasePresenter
中的 beforeRender()
方法。
if ($this->isAjax()) { $this->invalidateControl('title'); $this->invalidateControl('content'); }
并且可能需要相应地升级 app/@layout.latte
<title n:inner-snippet="title">...</title>
{snippet content} {include content} {/snippet}
禁用
如果您想排除特定的链接或表单,使它们不在此插件的范围内(不更新 URL),则可以使用 nette.ajax.js 的 data-ajax-off
功能。
<a class="ajax" data-ajax-off="history">
UI 缓存
扩展将自动缓存您的 UI,并在点击 后退 和 前进 按钮时恢复它,无需与服务器通信。如果您希望在每次点击 后退 和 前进 时都调用服务器,请关闭缓存。
$.nette.ext('history').cache = false;