it-swarm.asia

Peningkatan kecepatan dengan mengorbankan tidak bekerja dengan JS dimatikan

Saya memiliki galeri gambar yang saat ini memuat gambar menggunakan tag img standar dan karena memiliki banyak gambar besar itu memuat cukup lambat.

Saya dapat mempercepat dengan meminta script galeri memuat gambar secara dinamis setelah halaman dimuat. Saya menguji ini dan ada keuntungan kinerja yang signifikan. Masalahnya adalah dengan melakukannya seperti ini gambar tidak dimuat jika pengguna telah menonaktifkan JS.

Jadi pertanyaannya adalah, Apakah pertukaran yang menguntungkan untuk mendapatkan kinerja dengan mengorbankan halaman tidak berfungsi jika JS dinonaktifkan?

Dalam kasus khusus ini saya pikir saya akan menggunakan tag noscript, tetapi bagaimana jika saya tidak memiliki kontrol terhadap output html (katakanlah dalam CMS).

2
Sruly

Beberapa pemikiran cepat:

  • Desain ulang UI Anda sehingga Anda tidak perlu memuat lebih dari N gambar. Misalnya, perkenalkan pagination.
  • Banyak browser hanya membuat gambar yang terlihat oleh pengguna. Pertimbangkan menyembunyikan gambar lain dengan memindahkannya dari layar atau ke div dengan overflow: disembunyikan atau sesuatu.
  • Muat gambar N pertama pada pageload dan sisanya sesudahnya. Memuat gambar yang tersisa akan membutuhkan javascript, dan Anda dapat menambahkan tag tanpa script yang menambahkan pagination untuk beberapa pengguna yang tidak memiliki JS diaktifkan.
  • Bergantung pada jenis gambar yang Anda hadapi, gabungkan gambar ke dalam lembar Sprite dan muat semuanya sebagai gambar latar menggunakan posisi latar belakang di CSS untuk hanya menampilkan bagian yang tepat. Waktu buka di muka akan lumayan, tetapi dapat disimpan dalam cache.

Pada akhirnya saya tidak bisa menjawab apakah JS dimatikan merupakan tradeoff yang berharga karena saya tidak tahu apa audiens Anda. Saya butuh info lebih lanjut. Dalam sebagian besar kasus dengan situs web yang saya kerjakan, kami cenderung bersandar pada peningkatan progresif. Jadi contoh ketiga dalam daftar saya adalah yang mungkin saya pilih.

4
Rahul

Bagaimana jika alih-alih membutuhkan JS untuk mempercepat pemuatan gambar, Anda memuat gambar di akhir halaman lain sehingga ketika Anda ingin melihat galeri, mereka sudah dimuat. Anda hanya ingin memastikan gambar setelah semua konten penting dan bahwa Anda menggunakan nama yang sama sehingga dapat di-cache.

Jika Anda memang ingin tetap dengan memuat dengan JS, saya akan merekomendasikan memeriksa JS terlebih dahulu dan menggunakan beban dinamis jika mereka mendukung JS, dan jatuh kembali ke standar jika mereka tidak memiliki JS.

1
LoganGoesPlaces

Anda dapat melakukan ini secara progresif. Yaitu, HTML awal menghasilkan tag IMG, seperti sekarang. Tetapi segera saat dimuat, jQuery Anda menyala dan secara dinamis mengganti tag IMG dengan pemuat khusus Anda. Terbaik dari kedua dunia.

1
Chase Seibert

Bahkan perusahaan besar mulai membutuhkan Javascript. Misalnya, jika Anda mematikan Javascript di IE, tahukah Anda bahwa Anda bahkan tidak dapat mengunduh Google Chrome? Accept and Install Tombol tidak berfungsi. Mereka hanya menunjukkan sedikit teks ini di bagian atas layar:

Anda memerlukan peramban yang mendukung JavaScript untuk mengunduh perangkat lunak ini. Klik di sini untuk instruksi tentang cara mengaktifkan JavaScript di browser Anda.

Secara pribadi saya merasa persyaratan Javascript adalah kesalahan pada bagian mereka untuk skenario ini, tetapi saya ngelantur.

Tentu saja itu tergantung pada audiens Anda, tetapi selama beberapa tahun terakhir saya juga telah membangun beberapa antarmuka web yang memerlukan Javascript untuk bekerja.

Kekhawatiran yang tersisa adalah SEO. Jika Anda ingin gambar di galeri Anda diindeks oleh Google, Anda akan membutuhkannya untuk ditampilkan dalam HTML.

1
Steve Wortham

Pertanyaan "Bagaimana Jika Mereka Mematikan Javascript" adalah pertanyaan yang harus dijalani sendiri. Meskipun Anda harus memastikan bahwa aplikasi/situs Anda masih dapat digunakan dengan JS dimatikan, Anda juga harus memikirkan siapa audiens Anda. Jujur - ini tahun 2010 dan pengembang web seharusnya tidak perlu memikirkan masalah ini (saya tidak lagi).

Gunakan analitik untuk mengetahui apakah pengguna Anda menonaktifkan/menghidupkan JS. Jika kurang dari 5% dari pengguna Anda bahkan tidak membuang waktu untuk solusi.

1
abrudtkuhl