Apa permintaan AJAX tersembunyi?
Saya perhatikan peningkatan penggunaan permintaan AJAX tersembunyi yang dirancang untuk membuat tindakan pengguna tampak terjadi segera. Saya akan merujuk jenis permintaan AJAX ini sebagai non-pemblokiran. Ini adalah permintaan AJAX yang dibuat tanpa pengguna sadari itu terjadi, itu dilakukan di latar belakang dan operasinya tidak bersuara ( tidak ada kata kerja yang menunjukkan penyelesaian panggilan AJAX yang berhasil ). Tujuannya adalah untuk membuat operasi tampak telah terjadi segera ketika itu benar-benar belum selesai.
Berikut adalah contoh permintaan AJAX yang tidak menghalangi;
- Klik pengguna dihapus pada kumpulan email. Item menghilang segera dari kotak masuk mereka, dan mereka dapat melanjutkan dengan operasi lain. Sementara itu, permintaan AJAX sedang memproses penghapusan item di latar belakang.
- Pengguna mengisi formulir untuk catatan baru. Klik simpan. Item baru segera muncul dalam daftar. Pengguna dapat terus menambahkan catatan baru.
Untuk memperjelas, berikut adalah contoh pemblokiran permintaan AJAX;
- Klik pengguna dihapus pada kumpulan email. Kursor jam pasir muncul. Permintaan AJAX dibuat, dan ketika merespons kursor jam pasir dimatikan. Pengguna harus menunggu sebentar agar operasi selesai.
- Pengguna mengisi formulir untuk catatan baru. Klik simpan. Bentuknya berubah abu-abu dengan loader AJAX yang bergerak. Sebuah pesan ditampilkan "Data Anda telah disimpan", dan catatan baru muncul dalam daftar.
Perbedaan antara kedua skenario di atas adalah bahwa pengaturan AJAX yang tidak memblokir tidak memberikan umpan balik dari kinerja yang beroperasi, dan pengaturan AJAX yang memblokir tidak.
Risiko Permintaan AJAX Tersembunyi
Risiko terbesar dari gaya permintaan AJAX ini adalah bahwa aplikasi web bisa dalam keadaan yang sama sekali berbeda ketika permintaan AJAX gagal.
Misalnya, contoh non-pemblokiran;
- Pengguna memilih banyak email. Klik tombol hapus. Operasi tampaknya segera terjadi (item hilang begitu saja dari daftar). Pengguna kemudian mengklik tombol tulis dan mulai mengetik email baru. Pada saat inilah kode JavaScript menemukan permintaan AJAX gagal. Script dapat menampilkan pesan kesalahan, tetapi sebenarnya tidak ada gunanya saat ini.
Sebagai alternatif, contoh pemblokiran;
- Pengguna memilih banyak email. Klik tombol hapus. Melihat satu jam kaca, tetapi operasi gagal. Mereka mendapatkan pesan kesalahan yang mengatakan "kesalahan. Blah blah blah". Mereka dikembalikan ke daftar email, dan mereka masih memiliki email yang ingin mereka hapus. Mereka dapat mencoba menghapusnya lagi.
Ada juga risiko teknis lainnya untuk melakukan permintaan AJAX yang tidak menghalangi. Pengguna dapat menutup browser, dapat menavigasi ke situs web lain dan mereka dapat menavigasi ke lokasi lain di web saat ini yang membuat konteks respons kesalahan apa pun menjadi tidak berarti.
Jadi mengapa ia menjadi begitu populer?
Facebook, Google, Microsoft, dll. Dll. Semua domain besar ini semakin menggunakan permintaan AJAX yang tidak menghalangi untuk membuat operasi tampak bahwa mereka dilakukan secara instan. Saya juga melihat peningkatan editor formulir yang tidak memiliki tombol simpan atau kirim . Segera setelah Anda meninggalkan bidang atau tekan enter. Nilai disimpan. Tidak ada profil Anda yang diperbarui pesan atau langkah penyimpanan.
Permintaan AJAX bukanlah suatu kepastian, dan seharusnya tidak diperlakukan sebagai berhasil sampai mereka selesai, tetapi begitu banyak aplikasi web utama beroperasi begitu saja.
Apakah situs web ini yang menggunakan panggilan AJAX non-pemblokiran untuk mensimulasikan aplikasi responsif mengambil risiko yang tidak perlu dengan biaya muncul dengan cepat?
Apakah ini pola desain yang harus kita semua ikuti agar tetap kompetitif?