Проблемы с Pdf-Js v0.1.2 — Плагины

ederd 1

Здравствуйте,
У меня возникла проблема с использованием плагина pdfjs. Я запускаю Grav на локальном XAMPP на своем компьютере. Я хочу вставлять pdf-файлы на свой сайт. Но все, что я вижу, это:

02-08-_2018_09-08-16.png1495×466 4,69 КБ

это комментарий, который я пробовал

[pdfjs=данные:файл.pdf]

Кто-нибудь может мне помочь?

аранг 2

Похоже, неправильный путь. Куда вы положили свой .pdf?
Должен находиться в папке /user/data, если вы используете этот код.


Попробуйте поместить .pdf в ту же папку, что и сама страница.
, а затем:

 [pdfjs=имя файла.pdf]
 

Проверьте, включен ли плагин:
user/plugins/pdf-js/pdf-js.yaml
Вы читали документы: https://github.com/iusvar/grav-plugin-pdf-js
Проверьте в разных браузерах.

МохананПГ 3

Здравствуйте,
Буду признателен за помощь в pdfjs.

У меня есть тестовая площадка grav+gantry5, на которой я установил PDF-JS с его зависимостями.

Когда я использую [pdfjs=MyTestFile.pdf] на странице, возникает ошибка, как показано ниже.

Ошибка сервера
Извините, что-то пошло не так!

E_WARNING — strpos(): Пустая игла

Для получения дополнительной информации просмотрите папку
logs/ или включите отображение ошибок в конфигурации вашей системы.

Файл журнала приведен ниже. (Это длинно)
Файл журнала
[2018-08-10 09:18:59] grav.CRITICAL: strpos(): Пустая игла — Трассировка: #0 [внутренняя функция]: Whoops\Run->handleError( 2, ‘strpos(): Пусто…’, ‘/var/www/gg5/us…’, 49, Array) #1 /var/www/gg5/user/plugins/pdf-js/PDFJsShortcode.php(49): strpos(‘/var/www/gg5/us…’, ») #2 [внутренняя функция] : Grav\Plugin\Shortcodes\PDFJsShortcode->process(Object(Thunder\Shortcode\Shortcode\ProcessedShortcode)) #3 /var/www/gg5/user/plugins/shortcode-core/vendor/thunderer/shortcode/src/Processor/ Processor.php(134): call_user_func_array(Array, Array) #4 /var/www/gg5/user/plugins/shortcode-core/vendor/thunderer/shortcode/src/Processor/Processor.php(104): Thunder\Shortcode \Processor\Processor->

processHandler(Object(Thunder\Shortcode\Shortcode\ParsedShortcode), Object(Thunder\Shortcode\Processor\ProcessorContext), Array) #5 /var/www/gg5/user/plugins/shortcode-core/vendor /thunderer/shortcode/src/Processor/Processor. php(52): Thunder\Shortcode\Processor\Processor->processIteration(‘[pdfjs=CastBase…’, Object(Thunder\Shortcode\Processor\ProcessorContext), NULL) #6 /var/www/gg5/user/plugins/shortcode-core/classes/ShortcodeManager.php(227): Thunder\Shortcode\Processor\Processor->
process(‘[pdfjs=CastBase…’) #7 /var/www/ gg5/пользователь/плагины/шорткод-ядро/шорткод-ядро.php(97): Grav\Plugin\ShortcodeManager->processContent(Object(Grav\Common\Page\Page), Object(Grav\Common\Data\Data)) #8 [внутренняя функция]: Grav\Plugin\ShortcodeCorePlugin->onPageContentProcessed( Объект(RocketTheme\Toolbox\Event\Event), ‘onPageContentPr…’, Объект(RocketTheme\Toolbox\Event\EventDispatcher)) #9 /var/www/gg5/vendor/symfony/event-dispatcher/EventDispatcher.php(184) : call_user_func(Array, Object(RocketTheme\Toolbox\Event\Event), ‘onPageContentPr…’, Object(RocketTheme\Toolbox\Event\EventDispatcher)) #10 /var/www/gg5/vendor/symfony/event-dispatcher/EventDispatcher .php(46): Symfony\Component\EventDispatcher\EventDispatcher->
doDispatch(Array, ‘onPageContentPr…’, Object(RocketTheme\Toolbox\Event\Event)) #11 /var/www/gg5/vendor/rockettheme/toolbox/ Event/src/EventDispatcher. php(23): Symfony\Component\EventDispatcher\EventDispatcher->dispatch(‘onPageContentPr…’, Object(RocketTheme\Toolbox\Event\Event)) #12 /var/www/gg5/system/src /Grav/Common/Grav.php(283): RocketTheme\Toolbox\Event\EventDispatcher->dispatch(‘onPageContentPr…’, Object(RocketTheme\Toolbox\Event\Event)) #13 /var/www/gg5/system/ src/Grav/Common/Page/Page.php(668): Grav\Common\Grav->
fireEvent(‘onPageContentPr…’, Object(RocketTheme\Toolbox\Event\Event)) #14 /var/www/gg5/user /plugins/shortcode-core/shortcode-core.php(150): Grav\Common\Page\Page->content() #15 [внутренняя функция]: Grav\Plugin\ShortcodeCorePlugin->onPageInitialized(Object(RocketTheme\Toolbox\ Event\Event), ‘onPageInitializ…’, Object(RocketTheme\Toolbox\Event\EventDispatcher)) #16 /var/www/gg5/vendor/symfony/event-dispatcher/EventDispatcher.php(184): call_user_func(Array, Object (RocketTheme\Toolbox\Event\Event), ‘onPageInitializ…’, Object(RocketTheme\Toolbox\Event\EventDispatcher)) #17 /var/www/gg5/vendor/symfony/event-dispatcher/EventDispatcher.
php(46): Symfony\Component\EventDispatcher\EventDispatcher->doDispatch(Array, ‘onPageInitializ…’, Object(RocketTheme\Toolbox\Event\Event)) #18 /var/www/gg5/vendor/rockettheme/toolbox/Event/src/EventDispatcher. php(23): Symfony\Component\EventDispatcher\EventDispatcher->dispatch(‘onPageInitializ…’, Object(RocketTheme\Toolbox\Event\Event)) #19/var/www/gg5/system/src/Grav/Common/Grav.php(283): RocketTheme\Toolbox\Event\EventDispatcher->dispatch(‘onPageInitializ…’, Object(RocketTheme\Toolbox\Event\Event)) # 20 /var/www/gg5/system/src/Grav/Common/Processors/PagesProcessor.php(26): Grav\Common\Grav->fireEvent(‘onPageInitializ…’, Object(RocketTheme\Toolbox\Event\Event)) #21 /var/www/gg5/system/src/Grav/Common/Grav.php(132): Grav\Common\Processors\PagesProcessor->
process() #22 /var/www/gg5/system/src/Grav /Common/Grav.php(374): Grav\Common\Grav->Grav\Common{closure}() #23 [внутренняя функция]: Grav\Common\Grav::Grav\Common{closure}(‘pages’, ‘Страницы’, Объект(Закрытие)) #24 /var/www/gg5/system/src/Grav/Common/Grav. php(350): call_user_func_array(Объект(Закрытие), Массив) #25 /var/www/gg5 /system/src/Grav/Common/Grav.php(133): Grav\Common\Grav->__call(‘measureTime’, Array) #26 /var/www/gg5/index.php(52): Grav\Common \Grav->process() #27 {main} [] []

юсвар

15 сентября 2018 г., 10:46 4

Привет,

Я провел несколько тестов и обнаружил, что формат [pdfjs = имя файла.pdf] не работает в среде grav + gantry, но формат [файл pdfjs = имя файла.pdf] работает.

Спасибо за подсказку.
Я буду оценивать, что делать.

JS-запросов и размер 1-й и 3-й сторон — анализ

stevesoudersorg 1

Мы часто слышим жалобы на влияние стороннего JS на производительность сайта.

Я хотел посмотреть, где сегодня находится сторонний JS и каковы его тенденции. (Примечание: все это основано на данных настольных компьютеров. Кому-то было бы очень легко выполнить эти запросы для мобильных устройств и опубликовать результаты.

Вот запрос на среднее количество запросов JS от 1-й и 3-й стороны с 2010 года:

ВЫБЕРИТЕ дату,
       min(createDate) как эпоха,
       вечеринка,
       APPROX_QUANTILES( num_scripts, 1001)[SAFE_ORDINAL(501)] AS scriptsPerPage,
       раунд (APPROX_QUANTILES (JSBytesPerPage, 1001) [SAFE_ORDINAL (501)]/1024) КАК JSKBPerPage
ОТ (
    ВЫБЕРИТЕ дату, createDate, идентификатор страницы, вечеринку, количество (*) как num_scripts, сумму (respSize) как JSBytesPerPage
    ОТ (
        ВЫБЕРИТЕ SUBSTR(_TABLE_SUFFIX, 0, 10) КАК дату,
               p.pageid как идентификатор страницы,
               p.createDate,
               ЕСЛИ (STRPOS(NET.REG_DOMAIN(r.url),REGEXP_EXTRACT(pageDomain, r'([\w-]+)'))>
0, 1, 3) AS сторона, respSize ОТ ( ВЫБЕРИТЕ SUBSTR(_TABLE_SUFFIX, 0, 10) КАК dateP, дата создания, NET. REG_DOMAIN(url) как pageDomain, идентификатор страницы ИЗ `httparchive.summary_pages.*` ) как р, `httparchive.summary_requests.*` как r ГДЕ SUBSTR(_TABLE_SUFFIX, 0, 10) = датаP И p.pageid = r.pageid И ( resp_content_type, например, ""%application/javascript%"" ИЛИ resp_content_type, например, ""%text/javascript%"" ИЛИ resp_content_type, например, ""%application/x-javascript%"" ИЛИ resp_content_type, например, ""%application/json"" ) ) СГРУППИРОВАТЬ ПО дате, идентификатору страницы, дате создания, вечеринке ) СГРУППИРОВАТЬ ПО дате, вечеринке

И аналогичный запрос для размера JS:

 ВЫБЕРИТЕ дату,
       min(createDate) как эпоха,
       вечеринка,
       APPROX_QUANTILES( num_scripts, 1001)[SAFE_ORDINAL(501)] AS scriptsPerPage,
       раунд (APPROX_QUANTILES (JSBytesPerPage, 1001) [SAFE_ORDINAL (501)]/1024) КАК JSKBPerPage
ОТ (
    ВЫБЕРИТЕ дату, createDate, идентификатор страницы, вечеринку, количество (*) как num_scripts, сумму (respSize) как JSBytesPerPage
    ОТ (
        ВЫБЕРИТЕ SUBSTR(_TABLE_SUFFIX, 0, 10) КАК дату,
               p.
pageid как идентификатор страницы, p.createDate, ЕСЛИ (STRPOS(NET.REG_DOMAIN(r.url),REGEXP_EXTRACT(pageDomain, r'([\w-]+)'))>0, 1, 3) AS сторона, respSize ОТ ( ВЫБЕРИТЕ SUBSTR(_TABLE_SUFFIX, 0, 10) КАК dateP, дата создания, NET.REG_DOMAIN(url) как pageDomain, идентификатор страницы ИЗ `httparchive.summary_pages.*` ) как р, `httparchive.summary_requests.*` как r ГДЕ SUBSTR(_TABLE_SUFFIX, 0, 10) = датаP И p.pageid = r.pageid И ( resp_content_type, например, ""%application/javascript%"" ИЛИ resp_content_type, например, ""%text/javascript%"" ИЛИ resp_content_type, например, ""%application/x-javascript%"" ИЛИ resp_content_type, например, ""%application/json"" ) ) СГРУППИРОВАТЬ ПО дате, идентификатору страницы, дате создания, вечеринке ) СГРУППИРОВАТЬ ПО дате, вечеринке

Я экспортировал это в Google Sheets и сделал предварительную визуализацию:

Мы видим, что количество сценариев выросло с 4 до 6 для первой стороны и с 5 до 12 для третьей стороны. Общий размер вырос с 53 КБ до 106 КБ для первой стороны и с 32 КБ до 258 КБ для третьей стороны.

Некоторые наблюдения:

  • Количество собственных скриптов увеличилось на 50%, а количество сторонних скриптов увеличилось на 140%. Точно так же размер сторонних скриптов увеличился на 100%, тогда как размер сторонних скриптов увеличился на 806%!
  • В первые дни, в 2010 году, количество собственных и сторонних JS было примерно одинаковым, тогда как сейчас количество сторонних JS примерно в два раза больше, чем у первых. Одна из гипотез заключается в том, что теперь есть большая доступность и зависимость от стороннего JS.
  • Средний размер собственного сценария увеличился с 13 КБ до 18 КБ, а стороннего сценария — с 6 КБ до 21 КБ. Так что очевидно, что отдельные сценарии становятся больше. Возвращаясь к более ранней гипотезе, возможно, код, который раньше был 1-й стороной, переходит в 3-ю.

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

4 лайков

2

Безусловно, очень интересные результаты…

Чем вы руководствовались при включении в сравнение полезной нагрузки JSON? Мне любопытно, насколько это влияет на тенденцию.

стивесодерсорг 3

Моя основная цель здесь — увидеть рост использования JS, который включает такие структуры данных, как JSON. Другая причина заключается в том, что я хочу отслеживать ЦП, а JSON запускает JS, который использует ЦП.