Выполнение JavaScript для рендеринга HTML для кэширования серверной стороны

Многие сайты используют AJAX для динамического добавления / отображения / изменения контента. Иногда он используется вместо навигации по сайту, поэтому текущий URL-адрес изменяется программно, а сценарии содержимого в этом случае автоматически не выполняются браузером, так как страница не извлекается с удаленного сервера целиком.


Обычные JS-методы обнаружения изменений страницы, доступные в сценарии контента .


Специфические расширения: обнаружение изменений URL на странице background / .

Для работы с навигацией существует расширенный API: webNavigation , webRequest , но мы будем использовать простой chrome.tabs.onUpdated прослушиватель событий, который посылает сообщение к скрипту содержимого:

  • manifest.json: declare background / event page объявить скрипт содержимого добавить "tabs" разрешено .
  • background.js
    var rxLookfor = /^https?:\/\/(www\.)?google\.(com|\w\w(\.\w\w)?)\/.*?[?#&]q=/;
    chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
        if (rxLookfor.test(changeInfo.url)) {
            chrome.tabs.sendMessage(tabId, 'url-update');
        }
    });
    
  • content.js
    chrome.runtime.onMessage.addListener(function(msg, sender, sendResponse) {
        if (msg === 'url-update') {
            doSomething();
        }
    });
    

10
задан m87 24 April 2017 в 10:20
поделиться

3 ответа

Статья "Server-side JavaScript" Википедии перечисляет многочисленные реализации, многие из которых основаны на Носороге Mozilla преобразователь JavaScript к Java или его кузен SpiderMonkey (тот же механизм, как найдено в Firefox и других Основанных на гекконе браузерах). В частности, что-то простое как mod_js для Apache может удовлетворить Вашим потребностям.

2
ответ дан 4 December 2019 в 03:17
поделиться

Если Вы просто используете простой JS, Носорог должен добиться цели. Но если код JS на самом деле называет методы DOM и так далее, Вы испытываете необходимость в полноценном браузере. Лом мог бы помочь Вам.

Это действительно собирается сделать вещи быстрее для пользователей, не вызывая проблемы совместимости?

2
ответ дан 4 December 2019 в 03:17
поделиться

Существует Обеспечение John Resig проекта Браузера к Серверу: "Среда browser/DOM, записанная в JavaScript, который работает сверху Носорога; способный к под управлением jQuery, Прототипу и MochiKit (по крайней мере)".

2
ответ дан 4 December 2019 в 03:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: