Кеширование веб-страницы, содержащей JS, HTML и CSS - PullRequest
0 голосов
/ 09 мая 2020

Я использую микроконтроллер от микрочипа с встроенным веб-сервером для управления (микроконтроллер GPIO) через его веб-интерфейс. Веб-интерфейс использует JS и AJAX для обновления статуса GPIO и управления ими без обновления страницы. Теперь я хотел бы создать мобильное приложение, в котором пользователь должен ввести IP-адрес микроконтроллера и управлять им через встроенный фрейм веб-просмотра. Он работает хорошо, но у меня проблема со скоростью загрузки. Полная загрузка страницы занимает больше минуты. Итак, я думаю о лучшем решении для кеширования всего сайта. Когда я сохраняю страницу на своем компьютере из браузера, он дает мне файл html и несколько исходных файлов css и js. Когда я открываю страницу html, интерфейс отображается правильно, но, очевидно, не подключается к микроконтроллеру.

Может ли кто-нибудь сказать мне, где я должен вводить URL-адрес микроконтроллера во всех моих сохраненных исходных файлах?

NB: Я не делаю этого, если это полезно, ниже, если это часть исходного файла JS, который запускает ajax. Интересно, не следует ли мне указывать путь микроконтроллера вместо параметра «url».

/**
 * Initiates a new AJAX command
 *
 * @param   the url to access
 * @param   the document ID to fill, or a function to call with response XML (optional)
 * @param   true to repeat this call indefinitely (optional)
 * @param   a URL encoded string to be submitted as POST data (optional)
 */
function newAJAXCommand(url, container, repeat, data)
{
    // Set up our object
    var newAjax = new Object();
    var theTimer = new Date();
    newAjax.url = url;
    newAjax.container = container;
    newAjax.repeat = repeat;
    newAjax.ajaxReq = null;

    // Create and send the request
    if(window.XMLHttpRequest) {
        newAjax.ajaxReq = new XMLHttpRequest();
        newAjax.ajaxReq.open((data==null)?"GET":"POST", newAjax.url, true);
        newAjax.ajaxReq.send(data);
    // If we're using IE6 style (maybe 5.5 compatible too)
    } else if(window.ActiveXObject) {
        newAjax.ajaxReq = new ActiveXObject("Microsoft.XMLHTTP");
        if(newAjax.ajaxReq) {
            newAjax.ajaxReq.open((data==null)?"GET":"POST", newAjax.url, true);
            newAjax.ajaxReq.send(data);
        }
    }```
...