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.

  1. Perkecil jumlah HTTP requests
  2. Hindari pemakaian image map server site dan perkecil jumlah script hal-hal lain yang merequest ke server

  3. Gunakan CDN
  4. 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:

    .CDN situ-situs besar

  5. 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.

  6. Gzip components
  7. HTML, XML, CSS dan JSon (selain gambar dan PDF). Penulis menggunakan kode berikut di baris atas untuk mengcompress halaman blog ini.

    view plain print

    1. <?php
    2. ob_start("ob_gzhandler");
    3. ?>
  8. Tempatkan CSS di bagian atas
  9. 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.

  10. Pindahkan Java Script ke bagian bawah
  11. 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.

    jika script diletakkan di baris atas

    Untuk menghindari hal ini sebisa mungkin pindahkan java script ke bagian yang paling bawah. Tentunya tidak melupakan perimbangan agar java script tersebut bisa bekerja.

  12. 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:

    view plain print

    1. #myDiv {
    2. position: absolute;
    3. width: 100px;
    4. height: 100px;
    5. left: expression(document.body.offsetWidth - 110 + "px");
    6. top: expression(document.body.offsetHeight - 110 + "px");
    7. background: red;
    8. }
    CSS expressions are a powerful (and dangerous) way to set CSS properties dynamically.High Performance Web Sites by Steve Souders

    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.

  13. 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.

    view plain print

    1. <link href="style/style.css" rel="stylesheet" type="text/css" />
    2. <script src="contoh_javascript.js?t=1179019634"></script>
  14. Mengurangi DNS lookups
  15. Alasan utamanya adalah DNS lookup bisa menghalangi browser untuk melakukan parallel downloads.

  16. Perkecil ukuran file Java Script
  17. 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/shrinksafe
  18. Menghindari redirects
  19. Berikut gambaran waktu yang dibutuhkan untuk redirect.karena ada redirect
  20. Hilangkan duplicate scripts
  21. 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.

    *Steve Souders "

  22. Matikan ETags
  23. Entity tags (ETags) adalah suatu mekanisme yang digunakan oleh web server dan browser untuk memvalidasi komponen cached.

  24. buat AJAX bisa di-cache dan kecil
  25. 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.

sumber