Хобрук: Ваш путь к мастерству в программировании

Хранить кеш фантомов

У меня есть php-скрипт, который очищает веб-страницы и вставляет очищенные данные в базу данных.
PHP-скрипт использует Phantomjs в качестве инструмента для очистки веб-страниц.
PHP-скрипт очищает веб-страницы в определенном домене.
> например:
www.example.com/firstFolder
www.example.com/secondFolder
и так далее
Моя проблема в том, что phantomjs не хранит кеш предыдущих веб-страниц, которые у него есть уже запрошены во время сценария, и вместо этого он просто повторно загружает их снова.
Я предполагаю, что phantomjs не кэширует предыдущие веб-страницы, которые он загрузил, потому что я каждый раз вызываю phantomjs из php-скрипта как внешнюю программу Мне нужно очистить определенную веб-страницу.

$response = shell_exec('phantomjs getWebPage.js');

И поскольку я каждый раз вспоминаю фантомные файлы как внешнюю программу, она, вероятно, не помнит свои ранее очищенные веб-страницы.
Я понимаю, что если бы я запускал фантомные файлы в одном экземпляре, я мог бы сохранить кэширование фантомных файлов.< br> Но я не знаю, как это сделать, не отказываясь полностью от php из моей программы.
Итак, мой вопрос заключается в следующем.
Как я могу сохранить кэширование phantomjs, все еще выполняя мою программу в php?


  • возможный дубликат Как мне сделать Phantom .js кэширует ресурсы, как обычный браузер? 13.01.2015
  • я не могу найти %AppData%/Local/Ofi Labs/PhantomJS/cache/http. на моем компьютере 13.01.2015
  • Вы должны сначала запустить PhantomJS с опцией disk-cache. Вы на окнах? 13.01.2015
  • спасибо. Я использовал параметр --disk-cache=true, и теперь я вижу папки. Итак, как я могу убедиться, что Phantomjs загружает ресурсы из кеша? 13.01.2015
  • Вы должны иметь возможность зарегистрироваться на page.onResourceReceived и проверить, отображаются ли коды состояния 304. 13.01.2015
  • Я создал страницу практики на need4bit.com/phantomjsPractice. Я запустил программу с параметром --disk-cache=true, как вы и сказали. но я получаю код состояния 200 для need4bit.com/images/bgimg.jpg. 13.01.2015
  • Вы проверили, что рассматриваемое изображение действительно находится в кеше? Я не совсем уверен, что кэшируется PhantomJS. 13.01.2015
  • да, у меня есть в каталоге AppData\Local\Ofi Labs\PhantomJS\cache\data7\7 файл 21nd0ol7.d, который имеет тот же размер, что и изображение 'need4bit.com/images/bgimg.jpg'. Может быть, проблема в том, что папка «AppData» для меня является скрытой папкой, и поэтому у phantomjs нет прав на чтение в каталоге? 13.01.2015
  • Я только что попробовал это с вашей страницей, и вы можете проверить, кэшируется ли она, по времени выполнения. По какой-то причине статус остается на 200. Существует еще одно более сложное программное решение для проверки извлечения ресурса из кеша путем проверки времени, затрачиваемого между onResourceRequested и onResourceReceived для каждого ресурса. 13.01.2015
  • Нет, я просто изменил его на видимый каталог, и я все еще сталкиваюсь с той же проблемой :( 13.01.2015
  • Да, ты прав. Я сделал некоторые проверки, и когда я запустил программу с включенным кешем, мое среднее «время, затрачиваемое между onResourceRequested и onResourceReceived для каждого ресурса» составляло 41 миллисекунду, но когда я запускал с отключенным кешем, мое среднее время составляло 260 миллисекунд. Итак, почему я получаю код состояния 200, если загружаю ресурс из кеша. кстати большое спасибо за помощь. 13.01.2015
  • Вероятно, это еще одна странность PhantomJS. 13.01.2015
  • Согласен, это дубликат (и часть PHP была отвлекающим маневром). Но комментарии интересны - интересно, можно ли его сохранить, перефразировав вопрос как Как я могу подтвердить, что кеш работает или что-то в этом роде? 14.01.2015

Новые материалы

Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

Как настроить Selenium в проекте Angular
Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

Аргументы прогрессивного улучшения почти всегда упускают суть
В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

Введение в Джанго Фреймворк
Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..

Настольный ПК как «одно кольцо, чтобы править всеми» домашних компьютеров
Вид после 9 месяцев использования С настольных компьютеров все началось, но в какой-то момент они стали «серверами», и мы все перешли на ноутбуки. В прошлом году я столкнулся с идеей настольных..

Расширенные методы безопасности для VueJS: реализация аутентификации без пароля
Руководство, которое поможет вам создавать безопасные приложения в долгосрочной перспективе Безопасность приложений часто упускается из виду в процессе разработки, потому что основная..

стройный-i18следующий
Представляем стройную оболочку для i18next. Эта библиотека, основанная на i18next, заключает экземпляр i18next в хранилище svelte и отслеживает события i18next, такие как languageChanged,..