ホームページ  >  記事  >  ウェブフロントエンド  >  laravelフレームワークにおけるpjaxのユースケースの詳細な説明

laravelフレームワークにおけるpjaxのユースケースの詳細な説明

php中世界最好的语言
php中世界最好的语言オリジナル
2018-05-24 11:55:403994ブラウズ

今回は、laravelフレームワークでpjaxを使用する場合の注意点について詳しく説明します。実際のケースを見てみましょう。

pjax とは何かについては、読者は Baidu に問い合わせてください。

準備:
1. jquery.pjax.js ファイルをダウンロードし、ダウンロードをクリックします
2. NProgress をダウンロードします
3. 必要なファイルをプロジェクトに配置し、レイアウト ファイルで参照します。 (フレームワークのパブリック ディレクトリの下)

開始:
ここでは adminLTE バックエンド テンプレートを使用しています。具体的な使用方法については、「Laravel5 での AdminLTE の使用」を参照してください。 kernel.php ファイルにコードを追加します:

$ composer require spatie/laravel-pjax

pjax を設定してページを完了します。インタラクション:(追記:作者はサイト全体でページをロードするためにpjaxを使用しているため、pjaxはグローバルjsファイルで設定されています。読者は必要に応じて個別に設定できます)

// app/Http/Kernel.php
...
protected $middleware = [
...
\Spatie\Pjax\Middleware\FilterIfPjax::class,
];
この時点で、laravelとpjaxの組み合わせが完了しました。

添付ファイル:

作成者のレイアウト (layout.blade.php):

$.pjax.defaults.timeout = 5000;
$.pjax.defaults.maxCacheLength = 0;
//配置可点击的<a>标签使用pjax
$(document).pjax('a:not(a[target="_blank"])', {
    container: '#pjax-container'//配置pjax刷新容器
});
NProgress.configure({parent: '#pjax-container'});
//超时执行函数
$(document).on('pjax:timeout', function (event) {
    event.preventDefault();
});
グローバル js ファイル (admin-base.js):

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>AdminLTE</title>
    <!-- Tell the browser to be responsive to screen width -->
    <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
    <link rel="stylesheet" href="{{ asset(&#39;AdminLTE/bower_components/bootstrap/dist/css/bootstrap.min.css&#39;)}}">
    <!-- Font Awesome -->
    <link rel="stylesheet" href="{{ asset(&#39;AdminLTE/bower_components/font-awesome/css/font-awesome.min.css&#39;) }}">
    <!-- Ionicons -->
    <link rel="stylesheet" href="{{ asset(&#39;AdminLTE/bower_components/Ionicons/css/ionicons.min.css&#39;) }}">
    <!-- select2 -->
    <link rel="stylesheet" href="{{ asset(&#39;AdminLTE/bower_components/select2/dist/css/select2.min.css&#39;) }}">
    <!-- DataTables -->
    <link rel="stylesheet" href="{{ asset(&#39;AdminLTE/bower_components/datatables.net-bs/css/dataTables.bootstrap.min.css&#39;) }}">
    <link rel="stylesheet" href="{{ asset(&#39;js_expand/dataTables.buttons/buttons.dataTables.min.css&#39;) }}">
    <!-- Theme style -->
    <link rel="stylesheet" href="{{ asset(&#39;AdminLTE/dist/css/AdminLTE.min.css&#39;) }}">
    <!-- AdminLTE Skins -->
    <link rel="stylesheet" href="{{ asset(&#39;AdminLTE/dist/css/skins/skin-blue.min.css&#39;) }}">
    <!-- nprogress -->
    <link rel="stylesheet" href="{{ asset(&#39;js_expand/nprogress/nprogress.css&#39;) }}">
    <!-- toastr -->
    <link rel="stylesheet" href="{{ asset(&#39;js_expand/toastr/build/toastr.min.css&#39;) }}">
    <!-- sweetalert -->
    <link rel="stylesheet" href="{{ asset(&#39;js_expand/sweetalert/dist/sweetalert.css&#39;) }}">
    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn&#39;t work if you view the page via file:// -->
    <!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
    <!-- Google Font -->
    <link rel="stylesheet"
          href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic">
    <!-- REQUIRED JS SCRIPTS -->
    <!-- jQuery 3 -->
    <script src="{{ asset(&#39;AdminLTE/bower_components/jquery/dist/jquery.min.js&#39;) }}"></script>
    <!-- jQuery 2 -->
    <script src="{{ asset(&#39;js_expand/jQuery/jQuery-2.1.4.min.js&#39;) }}"></script>
    <!-- Bootstrap 3.3.7 -->
    <script src="{{ asset(&#39;AdminLTE/bower_components/bootstrap/dist/js/bootstrap.min.js&#39;) }}"></script>
    <!-- Select2 -->
    <script src="{{ asset(&#39;AdminLTE/bower_components/select2/dist/js/select2.full.min.js&#39;) }}"></script>
    <!-- AdminLTE App -->
    <script src="{{ asset(&#39;AdminLTE/dist/js/adminlte.min.js&#39;) }}"></script>
    <!-- dataTables -->
    <script src="{{ asset(&#39;AdminLTE/bower_components/datatables.net/js/jquery.dataTables.min.js&#39;) }}"></script>
    <script src="{{ asset(&#39;AdminLTE/bower_components/datatables.net-bs/js/dataTables.bootstrap.min.js&#39;) }}"></script>
    <script src="{{ asset(&#39;js_expand/dataTables.lan.js&#39;) }}"></script>
    <script src="{{ asset(&#39;js_expand/dataTables.buttons/dataTables.buttons.min.js&#39;) }}"></script>
    <script src="{{ asset(&#39;vendor/datatables/buttons.server-side.js&#39;) }}"></script>
</head>
<body class="hold-transition skin-blue sidebar-mini">
<p class="wrapper">
    <!-- Main Header -->
    @include('admin::partials.header')
    <!-- Left side column. contains the logo and sidebar -->
    @include('admin::partials.sidebar')
    <!-- Content Wrapper. Contains page content -->
    <p class="content-wrapper">
        <!-- Main content -->
        <section class="content container-fluid" id="pjax-container">
            @yield('content') 
            
        </section>
        <!-- /.content -->
    </p>
    <!-- /.content-wrapper -->
    <!-- Control Sidebar -->
    @include('admin::partials.control')
    <!-- /.control-sidebar -->
    <!-- Main Footer -->
    @include('admin::partials.footer')
</p>
<!-- ./wrapper -->
<script>
    var csrf_token = '{{ csrf_token() }}';
</script>
<!-- nprogress -->
<script src="{{ asset(&#39;js_expand/nprogress/nprogress.js&#39;) }}"></script>
<!-- pjax -->
<script src="{{ asset(&#39;js_expand/jquery-pjax/jquery.pjax.js&#39;) }}"></script>
<!-- toastr -->
<script src="{{ asset(&#39;js_expand/toastr/build/toastr.min.js&#39;) }}"></script>
<!-- sweetalert -->
<script src="{{ asset(&#39;js_expand/sweetalert/dist/sweetalert.min.js&#39;) }}"></script>
<!-- admin.base -->
<script src="{{ asset(&#39;js_expand/laravel-admin/admin.base.js&#39;) }}"></script>
<!-- custom script-->
<script>
    var selectedMenu = "{!! $requestUri !!}";
</script>
</body>
</html>
この記事の事例を読んだ後は、この方法を習得したと思います。刺激的なことは、php に注目してください。中国の Web サイトのその他の関連記事もご覧ください。


推奨書籍:

React と TypeScript および Mobx を組み合わせる手順の詳細な説明

React-router v4 を使用する手順の詳細な説明

以上がlaravelフレームワークにおけるpjaxのユースケースの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:jQueryの使用手順次の記事:jQueryの使用手順