Optimasi Website Agar di load lebih Cepat di Browser
Kali ini kita membahas bagaimana cara mengoptimalkan website kita agar cepat diload. Hal ini saya rasa perlu karena banyak user yang koneksi internetnya masih lambat seperti penulis sendiri. Atau paling tidak kita memberikan pelayanan yang prima ke user. User kita jangan disuguhi halaman yang isinya .. pls wait a minutes. loading in progress.. Wew.. siapa juga yang mau menunggu. Di samping itu, menurut yang pernah saya baca "kecepatan loading suatu halaman berbanding lurus dengan jumlah pengunjung". Maaf penulis lupa linknya, tapi kalau dipikir memang masuk akal juga. Pembaca yang kelamaan menunggu loading halaman, pasti tidak sabar dan kebanyakan langsung menutup halamannya.
Pada artikel kali ini penulis mencoba menjelaskan 14 aturan dasar agar website kita cepat diload.
- Perkecil jumlah HTTP requests
- Gunakan CDN
- Tambahkan Expires header
Browser akan mencocokkan apakah cache di browser sudah kadaluarsa apa belum dan ini akan memakan waktu apabila ternyata cache sudah kadaluarsa. Untuk mencegah ini tambahkan expires date.
- Gzip components
- <?php
- ob_start("ob_gzhandler");
- ?>
- Tempatkan CSS di bagian atas
- Pindahkan Java Script ke bagian bawah
- Hindari CSS expressions CSS expressions dikenalkan pertama kali di Explorer 5.0 dan memperbolehkan kita untuk memanggil JavaScript expression ke dalam CSS. Sebagai contohnya adalah CSS expression untuk menentukan posisi elemen div berdasarkan uskuran browser. Menjanjikan memang, tapi silahkan Anda coba sendiri di browser Anda.Berikut contohnya:
- #myDiv {
- position: absolute;
- width: 100px;
- height: 100px;
- left: expression(document.body.offsetWidth - 110 + "px");
- top: expression(document.body.offsetHeight - 110 + "px");
- background: red;
- }
Masalah yang timbul dengan penggunaan CSS expression adalah, CSS expression ini dijalankan berkali-kali, lebih dari yang diharapkan. Tidak hanya dijalankan saat halaman dirender dan diresize tetapi juga saat halaman di scroll bahkan saat user mengerakkan mouse di halaman web tersebut.
- Buat JavaScripts and CSS external
Alasan membuat Script dan CSS external adalah agar dapat dicache oleh browser. Dengan demikian halaman akan cepat diload apabila user kembali lagi ke halaman kita.
- <link href="style/style.css" rel="stylesheet" type="text/css" />
- <script src="contoh_javascript.js?t=1179019634"></script>
- Mengurangi DNS lookups
- Perkecil ukuran file Java Script
- Menghindari redirects Berikut gambaran waktu yang dibutuhkan untuk redirect.
- Hilangkan duplicate scripts Jangan meng-include script lebih dari sekali. Atau Memasukkan include di fetch array yang akan diload sebanyak x data. Akibatnya adalah extra HTTP requests (hanya di IE) dan eksekusi script yang berulang. Akibatnya loading halaman menjadi lama. "Akan tetapi kenyataanya sekarang 2 dari 10 website terkemuka masih melakukannya.
- Matikan ETags
- buat AJAX bisa di-cache dan kecil
Hindari pemakaian image map server site dan perkecil jumlah script hal-hal lain yang merequest ke server
Content Delivery Network (CDN) adalah networ komputer yang terhubung bersama-sama melalui internet yang bekerjasama untuk mengirimkan content kepada user. Berikut situs-situs dan penyedia layanan CDNnya:
.
HTML, XML, CSS dan JSon (selain gambar dan PDF). Penulis menggunakan kode berikut di baris atas untuk mengcompress halaman blog ini.
Karena CSS akan menghalangi proses render di Internet Explorer. Untuk mencegah hal ini letakkan CSS di <HEAD> HTML Anda dan gunakan external link ke CSS Anda jangan menggunakan @import.
Akibat dari javascript diletakkan di atas adalah adanya blank screen berwarna putih yang lama saat loading dan tertundanya loading isi halaman. Java Script tidak akan bekerja apabila obyek yang dikenai efek script belum selesai diload. Contohnya apabila kita menambahkan tool tips di links-links kita. Apanya yang akan diberi tools tips, jika links itu sendiri masih diload oleh browser. Belum lagi loading CSS dari tool tips itu sendiri.
Dan kenyataanya Java Script menghalangi browser melakukan parallel downloads dan menghalangi rendering semua content yang berada di bawahnya (CSS, HTML, image, dll). Pada keadaan normal (tidak ada Java Script) image akan didownload secara parallel sedangkan jika ada Java Script di bagian atas maka Java Script akan menghalangi proses ini, sampai keseluruhan kode java script selesai diload.
Untuk menghindari hal ini sebisa mungkin pindahkan java script ke bagian yang paling bawah. Tentunya tidak melupakan perimbangan agar java script tersebut bisa bekerja.
Alasan utamanya adalah DNS lookup bisa menghalangi browser untuk melakukan parallel downloads.
Dengan salah satu javascript compression tool di bawah ini, Anda bisa menghilangkan whitespaces yang tidak berguna dari file javascript. Dengan demikian ukuran file menjadi kecil dan akan mempercepat waktu download. Dengan tool tersebut Anda juga dapat menghilangkan komentar pribadi terhadap script yang telah Anda buat.
Berikut tool yang bisa digunakan untuk memperkcel ukuran java script Anda:- http://crockford.com/javascript/jsmin- http://dojotoolkit.org/docs/shrinksafeEntity tags (ETags) adalah suatu mekanisme yang digunakan oleh web server dan browser untuk memvalidasi komponen cached.
Ajax memang pada awalnya didesain untuk meload content tertentu tanpa meload halaman secara keseluruhan. Tapi sekarang sepertinya lebih mengarah ke segi interaktifnya. Memang bisa load data tanpa harus refresh page, tapi coba lihat Yahoo mail beta yang loadingnya lama banget. Penulis lebih suka cek email lewat wap di Opera. Atau Gmail yang banyak lebih suka mengakses lewat Thunderbird atau Outlook. Mungkin cuma bagus yang punya jaringan pita lebar kali.