Apa yang diunduh alat gratis sebelum Anda menekan apa pun | nopa

Apa yang diunduh sebuah alat sebelum Anda menekan apa pun

Penghapus latar kami mengirim 1386 KB JavaScript ke ponsel Anda sebelum Anda memilih foto. Tidak ada yang memintanya dan tidak ada yang membutuhkannya di layar. Berikut asal-usulnya, sampai di angka berapa kami memangkasnya, dan cara mengukur alat mana pun dalam tiga puluh detik.

Angka yang tidak pernah dipublikasikan

Semua situs alat memublikasikan daftar fiturnya. Hampir tidak ada yang memublikasikan berapa berat halamannya sebelum dipakai. Padahal angka itulah yang menentukan rasanya: di ponsel dengan koneksi seluler biasa, setiap sekitar 400 KB JavaScript berarti satu detik lagi menatap halaman yang tampak siap padahal belum.

Bagi kami itu lebih penting daripada bagi kebanyakan. nopa bekerja di perangkat Anda — menggabungkan, mengompresi, menranskrip terjadi di peramban, tidak ada yang diunggah. Sisi lain dari janji itu: kodenya harus sampai lebih dulu. Unduhan bukan biaya tambahan di sekitar produk. Unduhan adalah produknya yang sedang tiba.

Bagaimana kami mengukurnya

Sebuah skrip di repositori kami membuka setiap rute di Chromium sungguhan, dengan cache kosong dan service worker dimatikan, lalu menjumlahkan byte terkirim dari semua skrip yang diminta halaman sebelum ada interaksi. Bukan ukuran setelah dibuka, bukan laporan bundler — byte di jaringan, yang memang dibayar koneksi Anda.

Kami jalankan di seluruh situs: beranda, katalog dan halaman hub, serta setiap halaman alat. Tujuh rute kembali di atas satu megabita.

Apa yang kami temukan di kode kami sendiri

Kolom “sebelum” adalah yang kami kirimkan. Kolom “sesudah” adalah halaman yang sama hari ini, tanpa satu fitur pun dihapus.

HalamanSebelumSesudah
Hapus latar1386 KB405 KB
Emoji1318 KB740 KB
Transkripsi940 KB402 KB
Pengubah format berkas845 KB403 KB
Pembaca839 KB427 KB
Beranda325 KB28 KB
Katalog dan hub318 KB21 KB

Penyebabnya tidak pernah fitur. Penyebabnya impor.

Tidak satu pun halaman ini berat karena pekerjaannya. Setiap kali penyebabnya satu baris di bagian atas berkas, yang menarik sesuatu yang tidak akan pernah dijalankan halaman itu.

  • Pemeriksaan “apakah model AI sudah terunduh?” menyeret seluruh runtime machine learning — 539 KB — ke halaman yang tidak pernah memuat model. Sekarang ia membaca cache peramban langsung, dalam sembilan baris.
  • Sebuah pembantu zip diimpor di awal mesin PDF, jadi setiap halaman yang mengarsipkan sesuatu ikut mengunduh 443 KB kode PDF. Memuatnya saat dipakai memangkas empat halaman alat menjadi separuh.
  • Pemilih emoji mengirim tabel kata kuncinya — separuh bobot datanya — sebelum satu ketikan pun. Kini tabel itu datang bersama pencarian pertama Anda, satu-satunya saat ia dibaca.
  • Satu pustaka animasi penuh dimuat demi satu panel yang naik di ponsel. Peramban sudah punya API animasi bawaan; pustakanya kami buang.
  • Indeks katalog 373 KB dimuat di setiap halaman hanya untuk menggambar satu baris tautan “alat terkait”.

Mengapa di sini tidak ada angka pesaing

Kami ingin memasukkan alat lain ke tabel itu. Secara jujur, tidak bisa. Percobaan pertama mengunduh halaman pesaing dan menghitung skrip di HTML-nya; hasilnya menyebut sebuah suite PDF terkenal mengirim 2 KB JavaScript — karena aplikasi sesungguhnya dimuat oleh JavaScript, bukan ditulis di halaman. Angka yang tidak bisa kami reproduksi lebih buruk daripada tidak ada angka, dan perbandingan yang nilainya kami tentukan sendiri bukan perbandingan.

Jadi tabel di atas hanya berisi halaman milik kami. Sebagai ganti angka yang harus Anda percayai begitu saja, ini metodenya.

Ukur alat apa pun dalam tiga puluh detik

Berlaku di situs mana pun, termasuk situs kami. Kalau angka kami salah, begini cara Anda menangkapnya.

  • Buka alatnya di peramban desktop, lalu buka developer tools (F12), tab Network.
  • Centang “Disable cache”, saring ke JS, lalu muat ulang halaman.
  • Baca total transferred di bawah sebelum menekan apa pun. Itulah unduhan yang Anda bayar pada setiap kunjungan dingin.
  • Untuk menguji klaim kerja lokal: setelah halaman termuat, ubah jaringan ke offline lalu jalankan tugas Anda. Kalau selesai, pekerjaannya di perangkat Anda. Kalau gagal, berkas Anda sedang dikirim ke suatu tempat.

Batas yang kini kami pegang

Setiap rute punya batas keras 600 KB JavaScript, dan skrip yang mengukurnya gagal dengan berisik begitu sebuah halaman melewatinya. Itulah yang menahan masalah ini agar tidak kembali: empat perbaikan di atas memakan waktu satu hari, dan alasan ia dibutuhkan berbulan-bulan hanyalah karena tidak ada yang menghitung.

Alatnya ada saat Anda butuh, dan tidak satu pun meminta Anda mendaftar hanya untuk tahu berapa beratnya.