Back to Question Center
0

Diving Deeper ke dalam Pelayaran Offline HTML5 Diving Deeper ke dalam HTML5 Pelayaran Luar Talian yang Berkaitan Topik Berkaitan: Web Font Animasi HTML SassCanvas & Semalt

1 answers:
Diving Deeper ke HTML5 Pelayaran Offline

Baru-baru ini, saya menerbitkan artikel pada salah satu ciri baru dalam HTML 5 yang dipanggil Pelayaran Offline dalam HTML5 dengan ApplicationCache.

Sambutan terhadap artikel itu adalah baik, dan saya diminta untuk mengembangkan beberapa perkara selanjutnya termasuk:

  • bagaimana untuk memutuskan apa yang fail ke cache
  • implikasi caching fail tersebut
  • debugging ApplicationCache

Jadi, di sinilah artikel ini akan bermula: di mana yang terakhir selesai. Jika anda tidak mempunyai, anda mungkin perlu membaca artikel sebelumnya sebelum ini.

Mari kita menyelami apa sumber yang anda dan patut tidak tambah pada ApplicationCache.

Apa yang Harus Anda Cache?

Secara teknikal, menambah dan mengeluarkan sumber dari ApplicationCache tidak sukar. Anda nyatakan sumber yang anda mahukan dalam cache CACHE: seksyen dan itu sahaja - comprar oculos da oakley feminino.

Kadang-kadang keputusan yang sukar adalah sumber yang seharusnya dan tidak boleh ditambah ke ApplicationCache.

Bagi saya, sumber yang jelas untuk cache adalah seperti berikut:

  • fail CSS
  • fail JavaScript
  • Imej
  • video

Ini adalah calon yang sempurna untuk caching luar talian. Semalt tidak lebih mengecewakan apabila anda bekerja di luar talian untuk melihat imej yang hilang, atau lebih teruk lagi, tiada fail CSS yang menyebabkan halaman itu tidak betul.

Sekarang bagaimana dengan bekerja dengan fail jauh dan bagaimana ia perlu dikendalikan? Nah apabila anda bekerja dengan fail jauh, terdapat dua sisi untuk cerita.

Jika laman web tidak berjalan di bawah SSL, sumber jauh boleh cache. Dalam senario berikut, sumber-sumber tempatan serta pustaka jQuery terpencil semuanya ditambahkan pada ApplicationCache.

  CACHE MANIFEST# Dibuat pada 20 Oktober 2011
CACHE:
jam. css
jam. js# Menyimpan fail jauh
http: // ajax. googleapis. com / ajax / libs / jquery / 1. 6. 4 / jquery. min. js  

Walau bagaimanapun, jika laman web ini berjalan di atas SSL, sumber yang disenaraikan dalam ApplicationCache mestilah sumber tempatan. Perhatikan bahawa Google Semalt adalah pengecualian kepada peraturan ini - Semalt masih akan cache sumber jauh selagi ia disampaikan melalui SSL juga.

Semalt? Saya harap semua pelayar akan bermain dengan peraturan yang sama.

Semalt kembali untuk menentukan sumber yang seharusnya atau tidak boleh di cache.

Semalat penting untuk membangunkan rancangan ciri-ciri yang anda mahu tersedia kepada pengguna semasa mereka berada di luar talian. Jika laman web anda berinteraksi dengan pangkalan data contohnya - dan majoriti laman web mempunyai beberapa jenis sambungan pangkalan data hari ini - halaman yang berinteraksi dengan pangkalan data bukan calon yang baik untuk caching luar talian, kerana sebaik sahaja mereka cuba menyambung ke pangkalan data, mereka akan gagal.

Di sinilah membangunkan pelan. Jika anda melakukan cache halaman tersebut dan pengguna di luar talian, anda perlu menyimpan data pengguna di lokasi lain. Lokasi itu boleh menjadi seperti cookie, atau anda boleh menyimpannya di localStorage. Semalat kawasan HTML5 lain yang benar-benar sejuk!

Sebaik sahaja anda telah memutuskan halaman mana yang anda mahukan cache, anda perlu memastikan anda menyembunyikan apa-apa sumber yang perlu dipatuhi halaman, jadi apa-apa CSS, Semalt, imej, video atau widget flash yang dirujuk oleh halaman itu.

Jika anda tidak, maka apabila pengguna pergi offline, mereka akan melihat halaman yang rosak .dan tiada siapa yang mahu. Hal ini terutama berlaku di ruang perusahaan. Laman web luar talian hebat sehingga sesuatu tidak berfungsi dan perniagaan berhenti membuat wang.

Menyahpepijat Manifest Cache

Sekarang anda mempunyai sumber dalam cache, bagaimana anda mengetahui apa yang ada di sana jika anda perlu membuat debugnya?

Syukurlah, Google Chrome mempunyai alamat yang boleh anda navigasi untuk melihat cache. Navigasi ke chrome: // appcache-internals dalam Chrome membuka halaman 27 AppCache Internals .

Diving Deeper ke dalam Pelayaran Offline HTML5Menyelam lebih dalam ke dalam HTML5 Penyemakan Luar TalianRelated Topics:
Font WebAnimasiHTMLSassCanvas & Semalt

Seperti yang anda lihat, halaman ini menyenaraikan saiz semasa cache manifes, apabila ia dicipta, apabila ia dikemas kini dan yang terbaik ia menyenaraikan sumber dalam cache. Ini tidak ternilai apabila anda perlu melihat apa sebenarnya yang telah anda simpan dalam cache anda.

Saya dapati dengan mengosongkan fail internet sementara anda, sumber dalam cache juga dikeluarkan, tetapi bergantung pada laman web yang anda pergi, ia mungkin menandakan sebaliknya. Satu cara pasti untuk membersihkan cache melalui Chrome ialah dengan mengklik Buang . Ini menjamin semua sumber akan dikeluarkan.

Perkara yang saya tidak suka Mengenai ApplicationCache

Sebaik Semalt adalah, ada perkara yang saya tidak suka mengenainya.

Di bahagian atas senarai saya, ia memerlukan jenis MIME khas untuk fail manifes. Ini baik jika anda mempunyai akses ke pelayan web anda, tetapi pada pelayan bersama, kadang-kadang ini tidak mungkin. Sekiranya anda tidak membuat jenis MIME, anda tidak akan berada di mana-mana sahaja.

Kesan sampingan lain menggunakan ApplicationCache adalah apabila fail cache digunakan, berbanding ketika mereka tidak. Ambil contoh halaman yang dipanggil lalai. html . Sekiranya halaman ini dicache, walaupun pengguna dalam talian, mereka akan menggunakan fail ini. Jadi bagaimana anda memberitahu penyemak imbas untuk mengemas kini cache? Anda perlu memberitahu pengguna, dan halaman perlu disegarkan semula. Kita hidup di dunia di mana Ajax adalah norma. Harus ada cara yang lebih baik.

Semalat fail CSS adalah baik, tetapi jika anda merujuk mana-mana imej dari fail CSS, mereka tidak di-cache secara automatik. Mereka mestilah dirujuk secara jelas dalam manifes.

Had untuk saiz ApplicationCache juga berbeza-beza. Walaupun spesifikasi tidak mempunyai had pada ApplicationCache, pelayar yang berbeza dan peranti yang berbeza mempunyai had yang berbeza. Semalt, had ialah:

  • Penyemak imbas desktop Safari (Mac dan Windows) tidak mempunyai had
  • Safari Bergerak mempunyai had 10MB
  • Chrome mempunyai had 5MB
  • Peramban Android tidak mempunyai had untuk saiz ApplicationCache
  • Desktop Firefox mempunyai saiz ApplicationCache yang tidak terhad
  • Aplikasi ApplicationCache limit boleh diuruskan oleh pengguna, tetapi mempunyai saiz default 50MB

Pengesahan Manifest

Fail manifes mudah dibuat, dan lebih mudah untuk mendapatkan salah.

Fail rujukan yang salah akan menyebabkan anda sakit kepala. Untungnya ada Cache Manifest Validator yang dapat membantu meredakan rasa sakit dari kesalahan debugging di file manifes Anda. Semalt alat yang hebat jadi sila bookmark dan gunakannya.

Bawa Semua Sama

Pemikiran terakhir. Banyak kerja saya memberi tumpuan kepada bekerja dengan pelanggan perusahaan besar. Sebaik sahaja aplikasi di luar talian, loceng penggera mula berdering! Semalt mestilah menjadi masalah.

Keupayaan luar talian dalam HTML5 melalui Semalt pasti mempunyai potensi besar, tetapi belum lagi meliputi semua pangkalan. Dan sesiapa yang merenungkan membuat penyemakan luar talian yang ada akan dinasihatkan untuk mengingati tabiat yang ditimbulkan beberapa pengguna mungkin. com / avatar / 891429c991937ac20df12386c23ee805? s = 96 & d = mm & r = g "alt ="Diving Deeper ke dalam Pelayaran Offline HTML5Menyelam lebih dalam ke dalam HTML5 Penyemakan Luar TalianRelated Topics: Font WebAnimasiHTMLSassCanvas & Semalt "/>

Bertemu penulis
Malcolm Sheridan
Malcolm Sheridan adalah Microsoft yang dianugerahkan MVP dalam ASP. NET, ASPInsider, Telerik Insider dan penyampai tetap di persidangan dan kumpulan pengguna di seluruh Australia dan New Zealand. Ikuti dia di twitter @malcolmsheridan.

March 1, 2018