devmatic/laravel-instantclick

Laravel 5的InstantClick中间件

安装: 162

依赖者: 0

建议者: 0

安全: 0

星标: 49

关注者: 6

分支: 4

公开问题: 0

语言:JavaScript

v1.1.0 2016-02-26 08:43 UTC

This package is not auto-updated.

Last update: 2024-09-20 17:58:58 UTC


README

Latest Version on Packagist Software License Build Status SensioLabsInsight Quality Score Total Downloads

InstantClick是一个插件,通过利用Ajax来加速页面加载时间,使得网站中的链接瞬间跳转。

InstantClick使用pushState和Ajax(合称为pjax),仅替换head中的body和title。

Devmatic是一家致力于简化开发者生活的网站开发公司。您可以在我们的网站上找到所有项目的概述。

Ajax本身具有两个很好的特性

  • Your browser doesn’t have to throw and recompile scripts and styles on each page change anymore.
    
  • You don’t get a white flash while your browser is waiting for a page to display, making your website feel faster. 
    

此包提供了一个中间件,可以返回插件期望的响应。

视频教程及概述

IMAGE ALT TEXT HERE

安装与使用

  • 您可以通过composer安装此包
$ composer require devmatic/laravel-instantclick
  • 接下来,您必须将\Devmatic\InstantClick\Middleware\FilterIfInstantClick中间件添加到kernel中。
// app/Http/Kernel.php

...
protected $middleware = [
    ...
    \Devmatic\InstantClick\Middleware\FilterIfInstantClick::class,
];
  • 将包含的instantclick.js复制到您的公共资产文件夹中,然后在布局文件中包含它
	<script src="/path/to/instantclick.js" data-no-instant></script>
    <script data-no-instant>InstantClick.init();</script>
  • 请参阅InstantClient文档以了解有关InstantClient选项和工作原理的更多信息。

重要提示

请使用包含的instantclick.js文件,因为我已经对其进行修改,添加了$xhr.setRequestHeader(‘X-INSTANTCLICK’, true),以便中间件能够识别InstantClient请求并向其提供适当的响应。

工作原理

提供的中间件提供了Instant Click插件期望的服务器行为

设置了一个X-INSTANTCLICK请求头,以区分InstantClick请求和正常的XHR请求。在这种情况下,如果请求是InstantClick,我们将跳过布局html,只渲染body的内部内容。

变更日志

请参阅CHANGELOG以获取更多最近更改的信息。

测试

$ composer test

贡献

请参阅CONTRIBUTING以获取详细信息。

致谢

此包中的中间件最初由Freek Van der Herten编写,用于返回Pjax jQuery插件期望的响应。我编辑了他的中间件和InstantClick插件,使其适用于Laravel。其原始代码可在GitHub上的此存储库中找到。

许可证

MIT许可证(MIT)。请参阅许可证文件以获取更多信息。