Gå til innhold

[Løst] Hvilket kodespråk bruker facebook ?


Anbefalte innlegg

Videoannonse
Annonse

Hvilket kodespråk bruker facebook ? hva er det som gjør at ting ser mer levende ut ( ting er mer oppdatert uten om at man trenger å laste inn siden på nytt hver gang.. )

 

Brukeropplevelsen i Facebook har ikke så mye å gjøre med hva slags språk de bruker. Dette er mulig å få til med alle serverside-språk.

 

Man benytter gjerne begrepet "Web 2.0" om sider av denne typen, og "hemmeligheten" er at det til stadighet sendes forespørsler i bakgrunnen, som returnerer data som benyttes for å oppdatere kun deler av siden, slik at man ikke trenger å trykke refresh selv.

 

Dette løses som oftest med JavaScript, (det vil si kode som kjører i nettleseren) men det er mulig å få dette til uten JavaScript også, ved hjelp av IFRAME.

 

Forespørslene som kjøres i bakgrunnen kalles for Ajax-kall.

 

---

BalleB

  • Liker 1
Lenke til kommentar

FaceBook bruker hovedsaklig PHP / JS for logikken. Husker ikke hva de bruker som DB akkurat nå.

 

Har sett at de flytter mer og mer over på JS i browseren, som formaterer og oppdaterer osv. PHP brukes som oftest bare for å sende data til JS koden.

 

Regner med det er betraktelig mindre arbeid å gjøre på serveren pga det, og klient ressurser er noe man får mer av jo flere klienter man har, så det skalerer bra :)

 

Det er nok derfor Facebook sidene virker mer "levende", siden mesteparten av logikken skjer lokalt, i browseren. Men JS er ikke det mest effektive systemet, så det er også grunnen til at flere jeg kjenner syns Facebook siden virker veldig tung.

Lenke til kommentar

med tanke på feks , at en skriver kommentar under en video uten å måtte starte videoen på nytt. jeg har prøvd mange metoder , fant ikke løsning på det. skal html sende data gjennom en form så må siden oppdateres så mysql kan få info fra klienten...

Lenke til kommentar

neida, går helt fint det.

 

<html><head><title>JS ajax test med jQuery</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
</head>
<body>

<h2>Form test med AJAX og jQuery</h2>

<form action="formtarget.php" method="post" id="ajaxformen">
<p><label for="input_title">Tittel</label> <input id="input_title" name="title" placeholder="Tittel her"/></p>
<p><label for="input_data">Kommentar</label> <textarea id="input_data" name="comment"> </textarea></p>
<p><input type="submit" value="Lagre" /></p>
</form>

<span id="feedback"></span>

<script>
$("#feedback").hide();

$("#ajaxformen").submit( function() {
 $("#feedback").text("Sender post...");
 $(":input:not(:submit)").val("");
 $("#feedback").show();
 $.post("formtarget.php", $("#ajaxformen").serialize(), function() {
   $("#feedback").text("Posten postet!");
   $("#feedback").fadeOut("slow");
 });
 return false; // For å stoppe normal post
});
</script>
</body>

 

formtarget.php får da en vanlig POST. Om brukeren har JS påslått, vil det bli sendt i bakgrunnen. Om brukeren ikke har JS, vil det gå en vanlig reload.

 

Mer om jQuery finner du på http://docs.jquery.com/Main_Page

 

Edit: Bare for å presisere. Det samme kan gjøres i ren JavaScript også, er ingenting magisk med jQuery. Men med jQuery (eller Dojo, eller andre JS toolkits) slipper man mesteparten av problemene med flere browser typer (spesielt IE), og man har et sett hendige snarveier.

 

For å gjøre det der med ren JS snakker man fort om 1-3 sider med kode, som må holdes oppdatert etterhvert som nye non-standard browsere dukker opp (*host*IE*host*).

 

 

Til sammenligning, her er ren JS for å lage et xmlhttprequest på tvers av nettlesere, og hente data via GET. I tillegg så må serializ'e POST data, og evt behandle return data. Noe som blir gjort i en enkel linje via jQuery :)

 

var xmlhttp=false;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
// JScript gives us Conditional compilation, we can cope with old IE versions.
// and security blocked creation of the objects.
try {
 xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
 try {
  xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
 } catch (E) {
  xmlhttp = false;
 }
}
@end @*/
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
try {
	xmlhttp = new XMLHttpRequest();
} catch (e) {
	xmlhttp=false;
}
}
if (!xmlhttp && window.createRequest) {
try {
	xmlhttp = window.createRequest();
} catch (e) {
	xmlhttp=false;
}
}

xmlhttp.open("GET", "test.txt",true);
xmlhttp.onreadystatechange=function() {
 if (xmlhttp.readyState==4) {
  alert(xmlhttp.responseText)
 }
}
xmlhttp.send(null)

Endret av Terrasque
  • Liker 2
Lenke til kommentar
  • 2 uker senere...

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...