Манифест кэша приводит к остановке $ .getJSON - PullRequest
0 голосов
/ 18 июля 2011

Я занимаюсь разработкой мобильного приложения с использованием HTML5, Javascript, jQuery Mobile и автономного хранилища.

У меня есть приложение wep, которое подает массив объектов JSON в мобильное приложение (в том же домене). Он получает объекты JSON, сохраняет их в базе данных websql, а затем создает неупорядоченный список с ними, по которому можно щелкнуть ...

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

Я дошел до той части, где я создаю свой файл cache.manifest. В основном это выглядит так:

CACHE MANIFEST

CACHE:
index.html
app.html

NETWORK:
http://code.jquery.com/mobile/1.0a1/jquery.mobile-1.0a1.min.js
http://code.jquery.com/mobile/1.0a1/jquery.mobile-1.0a1.min.css
http://code.jquery.com/jquery-1.4.3.min.js
js/data.js
js/script.js

Однако, как только я добавлю

<html  manifest="cache.manifest">

И перезагрузите страницу, где мой $ .getJSON останавливается (можно найти в data.js). Другой код JS в этом файле, кажется, выполняется, но эта функция.

Вот функция, которая выполняется при загрузке:

function getAppointments(){
// Update appointments ONLY when online
if(navigator.onLine = true){
    console.log('Application Online.')

    // create appointments table
    createAppTable();
    $.getJSON("http://site.com/OptiQuoteApp/index.php/appointments/download/", function(data) {
        $.each(data,function()
        {
            // Save appointments in database
            updateAppointments(this.quote_id, this.start_date, this.reference, this.first_name+' '+this.last_name, this.comment);
        });
         getAppointmentsList();
    });
}else{
    console.log('Application Offline.')

}
getAppointmentsList();

}

Примечание. Я знаю, что это говорит site.com (для безопасности ...)

Скрипт доходит до createAppTable (); тогда не более.

Есть идеи у кого-нибудь?

Билли

Очень ценится

1 Ответ

3 голосов
/ 18 июля 2011

Попробуйте добавить * под "NETWORK:" в вашем файле манифеста.Таким образом, с вашего сайта будет извлечено все, что не кэшировано.

NETWORK:
http://code.jquery.com/mobile/1.0a1/jquery.mobile-1.0a1.min.js
http://code.jquery.com/mobile/1.0a1/jquery.mobile-1.0a1.min.css
http://code.jquery.com/jquery-1.4.3.min.js
js/data.js
js/script.js
*
...