Dino Esposito: Pembangunan aplikasi web moden. Analisis bidang subjek dan teknologi. Jangan pecahkan sejarah, perbaiki. Pengujian dan operasi percubaan

Baru-baru ini, terutamanya berkaitan dengan UX dan prestasi.

Saya ingin membentangkan 7 prinsip yang boleh diambil tindakan untuk tapak web yang ingin menggunakan JavaScript untuk mengawal UI mereka. Prinsip ini adalah hasil kerja saya sebagai pereka web, tetapi juga sebagai pengguna lama WWW.

JavaScript tidak dapat dinafikan telah menjadi alat yang sangat diperlukan untuk pembangun bahagian hadapan. Kini skopnya berkembang ke kawasan lain, seperti pelayan dan mikropengawal. Bahasa pengaturcaraan ini telah dipilih oleh universiti berprestij untuk mengajar pelajar asas sains komputer.

Pada masa yang sama, terdapat beberapa soalan mengenai peranannya dan kegunaan tertentu, yang sukar dijawab oleh ramai, termasuk pengarang rangka kerja dan perpustakaan.

  • Sekiranya JavaScript digunakan sebagai pengganti untuk ciri penyemak imbas: sejarah, navigasi, pemaparan?
  • Adakah bahagian belakang mati? Adakah saya perlu membuat HTML sama sekali?
  • Adakah benar bahawa Aplikasi Satu Halaman (SPA) adalah masa depan?
  • Sekiranya JS menjana halaman dalam tapak web dan memaparkan halaman dalam aplikasi web?
  • Adakah saya perlu menggunakan teknik seperti PJAX atau TurboLinks?
  • Apakah perbezaan tepat antara laman web dan aplikasi web? Patutkah ada yang tinggal?

Apa yang berikut adalah percubaan saya untuk menjawab soalan-soalan ini. Saya cuba menyelidik cara menggunakan JavaScript dari perspektif pengguna (UX). Khususnya, dia memberi perhatian khusus kepada idea untuk meminimumkan masa yang diperlukan pengguna untuk mendapatkan data yang menarik minatnya. Bermula dari asas teknologi rangkaian dan berakhir dengan ramalan kelakuan masa depan pengguna.

1. Membuat halaman pada pelayan adalah pilihan

tl;DR: Rendering pada pelayan tidak dilakukan untuk SEO, tetapi untuk prestasi. Pertimbangkan permintaan tambahan untuk skrip, gaya dan permintaan API seterusnya. Pada masa hadapan, pertimbangkan untuk menggunakan kaedah HTTP 2.0 tolak.

Pertama sekali, saya perlu menunjukkan kesilapan biasa untuk memisahkan "aplikasi yang diberikan pelayan" daripada "Aplikasi Halaman Tunggal". Jika kita ingin mencapai pengalaman terbaik dari sudut pandangan pengguna, maka kita tidak seharusnya mengehadkan diri kita kepada had tersebut dan meninggalkan satu alternatif memihak kepada yang lain.

Alasannya cukup jelas. Halaman dihantar melalui Internet, yang mempunyai batasan fizikal, seperti yang digambarkan oleh Stuart Cheshire dalam esei terkenalnya "Ia kependaman, bodoh":

Jarak antara Stanford dan Boston ialah 4320 km.
Kelajuan cahaya dalam vakum ialah 300 x 10^6 m/s.
Kelajuan cahaya dalam gentian optik adalah lebih kurang 66% daripada kelajuan cahaya dalam vakum.
Kelajuan cahaya dalam gentian optik ialah 300 x 10^6 m/s * 0.66 = 200 x 10^6 m/s.
Kelewatan penghantaran sehala ke Boston 4320 km / 200 x 10^6 m/s = 21.6 m/s.
Kelewatan perjalanan pergi dan balik ialah 43.2 m/s.
Ping dari Stanford ke Boston di Internet moden adalah kira-kira 85 ms (…)
Jadi, peralatan Internet moden menghantar isyarat pada kelajuan 0.5 kelajuan cahaya.

Keputusan 85 ms yang ditunjukkan boleh dipertingkatkan (dan sudah lebih baik sedikit), tetapi adalah penting untuk memahami bahawa terdapat had fizikal untuk kelewatan dalam menghantar maklumat melalui Internet, tidak kira berapa banyak lebar jalur meningkat pada komputer pengguna. .

Ini amat penting kerana semakin populariti aplikasi JavaScript, yang biasanya hanya mengandungi markup.