Предварительная загрузка страницы в Laravel 5

Это мой первый вопрос о Stackru.:-)

У меня есть довольно сложная страница, которая будет отображаться с 20+ фото, 4+ css, 6+ javascript-файлами для загрузки. Поскольку эта страница предназначена для отображения на мобильном телефоне, я бы хотел, чтобы она была предварительно загружена (желательно с прогрессом), чтобы улучшить взаимодействие с пользователем. Я смотрел на некоторые библиотеки JS, такие как Preload.js, но очень удивился, как я могу совместить это с моим представлением.

Вот некоторые из файлов:

show.blade.php -

@extends('page')

@section('title')
{{ $page->title }}
@stop

@section('header')
    @include('pages._navheader')
    {!! $page->header !!}
@stop

@section('content')
    @include('pages._nav')
    {!! $page->content !!}
@stop

@section('footer')
    <script type="text/javascript" src="/js/plugins/jquery/jquery.min.js"></script>
    @include('pages._navfooter')
    {!! $page->footer !!}
    <!-- WeChat Scripts -->
    <script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js" type="text/javascript" charset="utf-8"></script>
    <script type="text/javascript" charset="utf-8">
        wx.config(<?php echo $js->config(array('onMenuShareTimeline', 'onMenuShareAppMessage'), true, false) ?>);
    </script>
    <script type="text/javascript" charset="utf-8">
        alert('{{ $url }}');
        wx.ready(function () {
            var shareData = {
                title: '{{ Request::session()->get('nickname')}}recommends:{{ $page->title }}',
                desc: '{{ $page->description }}',
                link: '{{ $url }}',
                imgUrl: '{{ $page->thumbnail_url }}'
              };
              wx.onMenuShareAppMessage(shareData);
              wx.onMenuShareTimeline(shareData);
        });

        wx.error(function (res) {
          alert(res.errMsg);
        });
    </script>
    <!-- End WeChat Scripts -->
@stop

$ page-> header -

<link rel="stylesheet" href="/css/bootstrap/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="/css/products/style.css">

$ page-> content - некоторый HTML-код для страницы (с большим количеством графики)
Также в партиалах @inlcude содержится css/js/html, необходимый для меню навигации.

Таким образом, загрузка всех этих файлов, расположенных повсюду, выглядит как большой беспорядок. Есть ли способ поместить их в предзагрузку красиво и чисто? Заранее большое спасибо.

1 ответ

Это не специфично для laravel, но вы можете указать браузеру предварительно загрузить данный URL в фоновом режиме. Однако этот вид предварительной загрузки, скорее всего, будет предотвращен на мобильных телефонах (для которых вы стремитесь набрать скорость) в платной мобильной сети.

Чтобы включить эту функцию (только в современных браузерах), используйте элемент prefetch link, вставленный в заголовок:

<link rel="prefetch" href="url/to/preload">

Выражение "указывать браузеру" следует подчеркнуть, так как это позволит браузеру решить, возможно ли предварительно загрузить указанный URL-адрес, поэтому он может не работать мгновенно. Тем не менее, вы должны заметить значительное сокращение времени загрузки.

Другие вопросы по тегам