2015-06-15 2 views
5

Я читал книгу HTML в действии, а в главе 5 показано, как создать мобильное приложение, которое можно запустить в автономном режиме. Мое единственное сомнение: могу ли я сделать это для всей страницы? Можете ли вы дать мне простой, но полный пример о том, как это сделать?Как я могу использовать `localStorage` для хранения всей страницы?

Заранее спасибо.

+1

Посмотрите на это: http://stackoverflow.com/questions/11271898/how-to-save-a-webpage-locally-including-pictures-etc – sumit

+2

Откройте [AppCaching] (https://developer.mozilla.org/en/docs/Web/HTML/Using_the_application_cache). – Xufox

+1

для всей страницы вы должны использовать файл манифеста. а не локальное хранилище, оно слишком мало. –

ответ

6

Любопытное с ума, но вы можете сделать это следующим образом:

var htmlContents = document.documentElement.innerHTML; 
localStorage.setItem('myBook', JSON.stringify(htmlContents)); 

Оттуда вы можете назвать это всякий раз, когда вы хотите ..

localStorage.getItem('myBook'); 

Было бы лучше конечно, чтобы получить на самом деле книжное содержание, а не всю страницу!

Также, что вы хотите сделать с этим позже. Ну его только в вашем браузере .. так его доступно только вам. для метода appCahce, в основном вы будете сообщать посетившему браузеру файлы, которые вы хотите сохранить в кеше, чтобы они были доступны, когда пользователь находится в автономном режиме.

Это должно быть определено в атрибуте HTML:

<html manifest="offline_book.manifest"> 

Этот offline_book.manifest будет содержать список файлов для хранения в кэше.

CACHE MANIFEST 
/book_index.html 
/another_book.html 
/maybe_some_style.css 

Благодаря этому, тогда, когда пользователи приходят на эту страницу (автономном), они будут иметь кэшированные версии книг, которые вы перечислили.

Отличный ресурс в appCache специфику: Offline Webpages

+0

. Может ли пользователь загружать всю страницу офлайн? – Kyle

+0

Если вы сохранили javascript в своем кеше, который мог получить его при загрузке, то да, конечно, но, скорее всего, «appCaching» - лучший вариант для вашей ситуации. – Pogrindis

+1

Хорошо, я собираюсь проверить это :) – Kyle

1

Например, вы можете использовать localStorage для сохранения переменной:

// Store 
localStorage.setItem("lastname", "Smith"); 
// Retrieve 
document.getElementById("result").innerHTML = localStorage.getItem("lastname"); 

и получить его после того, как:

localStorage.getItem('lastname'); 

window.localStorage реализован последующий интерфейс, который accepted by W3C:

interface Storage { 
    readonly attribute unsigned long length; 
    [IndexGetter] DOMString key(in unsigned long index); 
    [NameGetter] DOMString getItem(in DOMString key); 
    [NameSetter] void setItem(in DOMString key, in DOMString data); 
    [NameDeleter] void removeItem(in DOMString key); 
    void clear(); 
}; 

Более подробную информацию вы можете прочитать here

+0

Спасибо за разъяснение, как использовать «localStorage» +1 :) – Kyle

Смежные вопросы