Home  ›  codes

How to: Update Status ala Facebook menggunakan jQuery

Terus terang, saya sudah lama sekali penasaran bagaimana caranya facebook bisa langsung melakukan update pada bagian feednya. Jadi ketika kita mengupdate status di facebook status tersebut langsung hadir didalam feed berita yang ada persis dibawahnya. Feed tersebut bergeser kebawah dan status yang baru muncul dengan mulusnya dibagian paling atas dari feed berita.

Sempet frustasi juga mikirin gimana caranya kok bisa bikin kayak begitu ya? Dan, tak disangka-sangka, pada saat saya sedang mengerjakan online application yang sedang saya buat, keinget kembali status facebook ini. Kemudian, dengan modal trial-and-error, alias coba-coba akhirnya cuhuy deh ketemu. Duh, bahagianyaa… :)

Kira-kira seperti ini teknik yang saya gunakan:

  1. Membuat template-nya

    Untuk contoh yang sederhana ini saya akan menggunakan 2 template yaitu Template Form dan Template Feed

    Snippet Template Form adalah sebagai berikut

    <form action="javascript:void(0);">
      <textarea name="status"></textarea><br />
      <input type="button" name="update" value="update" />
    </form>

    dan untuk Snippet Template Feed adalah sebagai berikut

    <div class="the-feed" style="height: 100px; width: 300px; border:1px solid black;">
      <ul>
        <li>Last Feed</li>
      </ul>
    </div>

  2. Include jQuery

    Sesuai dengan judulnya, saya menggunakan jQuery untuk membantu saya dengan feature ini. Karena masalah trust, saya lebih memilih untuk mengambil langsung jQuery yang berasal dari server Google

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js" type="text/javascript"></script>

  3. Bikin fungsi interactive update

    Fungsi ini yang nantinya akan membuat update status menjadi beranimasi seperti yang facebook miliki

    var interactiveUpdate = function(id,update) {
      var idparam = '.'+ id + ' ul li:first-child';

      // insert new list onto the first child of ul and hide it
      $(idparam).before('<li style="display:none;">'+update+'</li>');

      // display the hidden first child using jQuery's effect slideDown()
      $(idparam).slideDown("slow");
    }

    Fungsi ini memiliki tiga parameter penting, yaitu: id, update, and ul.

    • id : adalah parameter yang mengacu kepada attribute class di dalam
      yang ada di Template Form. Dalam contoh ini saya menggunakan class “example-status-1422″ (agak ribet supaya classnya unik dan tidak sama dengan class-class yang lainnya).
    • update : adalah string / kalimat yang ingin di tampilkan kedalam Template Feed
    • ul or ol : jika didalam Template Form kita menggunakan <ul> maka dalam fungsi diatas juga harus menggunakan ul. Demikian halnya jika di Tempate Form digunakan <ol>, maka pada fungsi diatas ol jugalah yang harus digunakan.
  4. Mempersiapkan fungsi javascript untuk menghandle proses update status

    Fungsi ini akan bekerja setiap kali tombol “update” ditekan.

    $(function(){updateStatus();});

    var updateStatus = function() {
       // Set the event if the button is clicked
      $('input[name="update"]').click(function() {

        // grab the status
        var stat = $('textarea[name="status"]').val();

        // call the interactiveUpdate snippet
        interactiveUpdate('the-feed',stat);
      });
    }

  5. Nah, tinggal menggabungkan semuanya dan.. SELESAI!

    Mari kita coba… (Ketikkan sesuatu pada isian Template Form dan tekan tombol “update”, kemudian perhatikan bagian Template Feed)

    Template Form:

    Template Feed:

    • Last Feed

Tutorial ini sama sekali tidak melakukan koneksi dan menyimpan status yang baru kedalam database. Namun bukan berarti hal tersebut tidak mungkin. Dengan menggunakan konsep AJAX melalui aturan-aturan yang ada pada jQuery, koneksi ke database dapat dilakukan dengan cukup mudah. Sehingga dapat dibuat suatu kondisi ketika proses penyimpanan status yang baru kedalam database berhasil dengan sukses maka status yang baru akan muncul di list feed paling atas.

Download

Source code keseluruhannya dapat di download disini. Ini sudah saya paketkan beserta jquery, jadi tinggal dicoba-coba saja.

Compatibilitas

Feature ini sudah saya coba di beberapa browser, yaitu:

  • Google Chrome 3.0.195.27
  • Firefox 3.5.3
  • Opera 10.00
  • Safari 4.0.3
  • IE 8.0.6001

Apabila pada poin ke 5 tersebut tidak berfungsi sebagaimana mestinya di browser tertentu, Kabar-kabari yak… :)

Disclaimer

Fungsi-fungsi javascript yang ada dalam tutorial ini bukan diambil dari facebook. Malahan, bisa jadi facebook menggunakan cara lain didalam fitur animasi update statusnya. Perlu diingat juga bahwa ada banyak cara dan tools yang dapat digunakan untuk menghasilkan animasi update status seperti yang facebook gunakan ini. Terima kasih telah membaca :D

Author

CodeInDesign.com is a web developer who based in Indonesia.
Its concern field is to merge the mental realm of code with the visual world of graphics.

Notes

This article is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 License and protected by Copyscape. You can cite, quote, copy this article as long as you put the article's source and credit the author.
  • http://trieand.com sinok elek

    pertamaxxxx……
    mantaaabbb artikelnya, mikirnya sampe frustasi sambil cabutin jenggot yak…hehehe…

    • yudiacro

      @sinok elek, bacanya juga sambil cabutin jenggot nih dek hahaha..

  • http://trieand.com sinok elek

    @yudiacro, mr murray kan ga punya jenggot, apa yg mo dicabutin… kambing expresss?????…hahaha

  • http://fajarfaqih.com fajarfaqih

    asiiik…
    bisa bikin sendiri.. makasih sob infonya.. berguna banget

    • yudiacro

      @fajarfaqih, sama2 Mas. Makasih sudah berkunjung.

  • http://iptek-online.com Hitori

    Wah, Ilmu ane bertambah… jelasin Plus sama masuk Databes duunk… ane juga gy blajar dari trial and error about Jquery …

    • yudiacro

      @Hitori, iya nanti menyusul databasenya gan. Masih belum sempat update artikel lagi :)

  • thea

    artikelnya seru2.. euey

    ayo tulis yg laennya.. ^_^

    • freelynx

      @thea, Makasih udah mampir n baca2 artikelnya… Sedang diusahakan untuk bisa nulis2 lagi. Doakan kami!! Chayo! :-)

  • RarashaPMH

    luhar bihasa……………..sering” bikin artikel about programming mas”

    • yudiacro

      @RarashaPMH, semoga nanti ada kesempatan untuk membuatnya. Waktu lagi tidak bersahabat saat ini :)

  • ayu

    bisa minta full source nya tidak? soalnya saya cba java scriptnya tdak jalan,,,trima kasih,,

    • freelynx

      @ayu, hmm.. tidak jalannya pas dimananya ya? pas di coba di step nomor 5 itu jalan gak? soalnya udah dites di beberapa browser baik2 aja. boleh tau web browser apa yang dipakai mbak ayu?.. sama-sama…

    • freelynx

      @ayu, kalau masih berminat dengan full source codenya bisa didownload disini.

      Happy coding..

  • http://alfanas.blogspot.com Alfan Nasrulloh

    wuihh…
    mantab mas… keren lah.

  • ades

    boz…kok saya ga bisa tampil di Last Feed pas saya klik update
    gmn yah code lengkap nya
    saya gabunginnya kyk gini:

    var interactiveUpdate = function(id,update) {
    var idparam = ‘.’+ id + ‘ ul li:first-child’;

    // insert new list onto the first child of ul and hide it
    $(idparam).before(”+update+”);

    // display the hidden first child using jQuery’s effect slideDown()
    $(idparam).slideDown(“slow”);
    }

    $(function(){updateStatus();});

    var updateStatus = function() {
    // Set the event if the button is clicked
    $(‘input[name="update"]‘).click(function() {

    // grab the status
    var stat = $(‘textarea[name="status"]‘).text();

    // call the interactiveUpdate snippet
    interactiveUpdate(‘the-feed’,stat);
    });
    }

    Last Feed

    .example-the-feed-1422 ul li { list-style:none; padding: 5px; border-bottom: 1px solid grey; height: 25px; }
    .example-the-feed-1422 ul li:first-child { background-color:#F6D2E3;}

    tapi tetep ga bs jalan tuh boz
    mohon bantuannya biar saya mengerti boz
    thanks

    • freelynx

      @ades, ternyata ada mixed up antara kode untuk tutorial dengan untuk demonya. So sorry for this. But Thanx banget udah secara gak langsung ngingetin untuk ngecek lagi. Tulisan ini udah diupdate, dan kalau mau langsung coba di box sendiri bisa didownload disini.

      Thanx again!

  • http://howtohackfacebook.net/ How to Hack Facebook

    Wah, Ilmu ane bertambah… jelasin Plus sama masuk Databes duunk… ane juga gy blajar dari trial and error about Jquery …

    • yudiacro

      @How to Hack Facebook, kalau ada kesempatan di depan, kami akan membuatnya lebih detil termasuk menggunakan database. Terima kasih atas kunjungannya.

  • http://poedjex.wordpress.com poedjex

    mas gmana caranya kalo setelah di submit (update) form nya jd clear .. jadi tulisanya seolah olah pindah ke bawah ..
    mohon pencerahannya :D :D

    • freelynx

      @poedjex, Sebenernya gak susah untuk mereset formnya. tinggal kasih snippet jQuery:

      $(‘textarea[name="example-status-1422"]‘).html(”);

      atau

      $(‘textarea[name="example-status-1422"]‘).text(”);

      setelah script

      interactiveUpdate(‘the-feed’,stat);

      Hope this helps :)

  • Davidvantiwa

    Cool m/

    ijin nyedot yah gan :)

    btw, klo ada info coding” seperti ini n tentang java script lain’a,. bagi” yah gan, maklum b’cz masih newbie :D :D

About CodeInDesign

CodeInDesign is web developer based in Indonesia. We build clean, appealing, and functional interfaces which comply with the latest web standards.

About Us
• Our Services
Contact Us

UPDATE: We are not available for a long term web project right now.