Автономная функциональность HTML5 не работает при перезапуске браузера - PullRequest
0 голосов
/ 22 февраля 2012

Я использую автономную функцию HTML5 для кэширования своего веб-приложения.

Иногда он работает нормально, но есть определенные обстоятельства, когда он ведет себя странно. Я пытаюсь понять, почему и как я могу это исправить.

Я использую Сэмми, и я думаю, что это может быть связано.

Вот когда все идет не так,

Перейдите на мою страницу http://domain/App примечание: Я не добавил косую черту после / App Затем Сэми перенаправляет меня на http://domain/App/#/ Все кешируется (включая изображения) Я выхожу в автономный режим, для этого я использую виртуальную машину, поэтому отключаю виртуальный сетевой адаптер закрываю браузер Я снова открываю браузер и просматриваю свою страницу http://domain/App/#/ Содержимое отображается за исключением изображений

Все работает нормально, если на шаге 1 я выбираю http://domain/App/, включая косую черту.

Есть некоторые другие странные состояния, в которые он попадает, когда самми-маршруты не вызываются, поэтому страница остается пустой, но я не смог достоверно воспроизвести это.

??

ОБНОВЛЕНИЕ: Проблема в том, что вышеуказанные шаги вызывали проблемы раньше Теперь я работаю, когда выполняю вышеуказанные шаги, поэтому трудно сказать, что именно происходит. Я начинаю с согласованного состояния каждый раз, потому что я начинаю с снимка в виртуальной машине.

Мой манифест кэша выглядит так,

CACHE MANIFEST

javascripts/jquery-1.4.2.js
javascripts/sammy/sammy.js
javascripts/json_store.js
javascripts/sammy/plugins/sammy.template.js

stylesheets/jsonstore.css

templates/item.template
templates/item_detail.template

images/1Large.jpg
images/1Small.jpg

images/2Large.jpg
images/2Small.jpg

images/3Large.jpg
images/3Small.jpg

images/4Large.jpg
images/4Small.jpg

index.html

1 Ответ

0 голосов
/ 20 мая 2012

У меня тоже похожая проблема.

Я думаю, что отчасти проблема в том, что jquery ajax неправильно интерпретирует ответ. Я считаю, что Сэмми использует jquery для выполнения вызовов ajax, что приводит к ошибкам.

Вот фрагмент кода, который я использовал для проверки этого (хотя это и не решение)

this.get('#/', function (context) {

    var uri = 'index.html';

    //  what i'm trying to call
    context.partial(uri, {});// fails on some browsers after initial caching

    //  show's that jquery's ajax is misinterpreting
    //  the response
    $.ajax({
        url:uri,
        success: function(data, textStatus, jqXHR){
            alert('success')
            alert(data);
        },
        error: function(jqXHR, textStatus, errorThrown){
            alert('error')
            if(jqXHR.status == 0){  //  this is actually a success
                alert(jqXHR.responseText);
            }else{
                alert('error code: ' + jqXHR.status)    // probably a real error
            }
        }
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...