Sunday, June 12, 2011

Source Code Random Post di Blogspot

Karena banyak yang penasaran akan source code random post di Blogspot, jadi akan saya posting di sini dua model Random post.

Model pertama, di mana menyediakan daftar acak beserta judul postingnya. Jumlah posting ditentukan oleh variabel numofpost. Kebetulan pada kode di bawah bernilaikan 5. Model ini paling efektif menurut saya dalam hal SEO. Perlu dicatat, terlalu banyak menampilkan jumlah posting berpengaruh pada kecepatan akses web.
<script type="text/javascript">
var randarray = new Array();
var l=0;
var flag;
var numofpost=5;

function randomposts(json){
var total = parseInt(json.feed.openSearch$totalResults.$t,10);

for(i=0;i < numofpost;) {
flag=0;
randarray.length=numofpost;
l=Math.floor(Math.random()*total);

for(j in randarray){
if(l==randarray[j]){ 
flag=1;
}
}

if(flag==0&&l!=0){
randarray[i++]=l;
}
}

document.write('<ul>');

for(n in randarray){ 
var p=randarray[n];
var entry=json.feed.entry[p-1];

for(k=0; k < entry.link.length; k++){
if(entry.link[k].rel=='alternate'){
var item = "<li>" + "<a href=" + entry.link[k].href + ">" + entry.title.$t + "</a> </li>";
document.write(item);
}
}
}
document.write('</ul>');}
</script>
<script src="/feeds/posts/default?alt=json-in-script&start-index=1&max-results=1000&callback=randomposts" type="text/javascript"> </script>

Model kedua, berisikan efek kejutan :D bagi yang membukanya, hanya berisi satu link. Tidak begitu bagus untuk SEO.
<div id="myLuckyPost">

</div>

<script type="text/javascript">

function showLucky(root){

var feed = root.feed;

var entries = feed.entry || [];

var entry = feed.entry[0];



for (var j = 0; j < entry.link.length; ++j){

if (entry.link[j].rel == 'alternate'){

window.location = entry.link[j].href;

}

}

}



function fetchLuck(luck){

script = document.createElement('script');

script.src = '/feeds/posts/summary?start-index='+luck+'&max-results=1&alt=json-in-script&callback=showLucky';

script.type = 'text/javascript'; document.getElementsByTagName('head')[0].appendChild(script);

}



function feelingLucky(root){

var feed = root.feed;

var total = parseInt(feed.openSearch$totalResults.$t,10);

var luckyNumber = Math.floor(Math.random()*total);



luckyNumber++;

a = document.createElement('a');

a.href = '#random';

a.rel = luckyNumber;

a.onclick = function(){fetchLuck(this.rel);};

a.innerHTML = 'I am Feeling Lucky'; document.getElementById('myLuckyPost').appendChild(a); } </script>

<script src="/feeds/posts/summary?max-results=0&alt=json-in-script&callback=feelingLucky"></script>

2 comments:

  1. Yang di atas itu pakai JSON, gak pakai RSS, RSS itu terlalu lambat. Kapan-kapan dibahas XML (RSS) vs JSON.

    Dia memanggil ke dirinya sendiri.

    ReplyDelete