Avatar billede Smitche Praktikant
11. juni 2013 - 12:24 Der er 6 kommentarer og
2 løsninger

Hvorfor bruge JSON til at bygge bro mellem database og fx en hjemmeside?

Vil høre om der er nogen der kan forklare mig fordele ved at bruge JSON, til at fungere som en slags bro mellem fx en MySQL database, hvor er er gemt indhold fra en hjemmeside?

Fandt denne tråd på stackoverflow: http://stackoverflow.com/questions/4881876/why-need-to-use-json-in-php-and-ajax

Men blev desværre ikke meget klogere. Vil derfor høre om der er nogen der kan forklare det på en lidt mere simpel måde :)

-Altså hvorfor bruge JSON som bindeled mellem en hjemmeside og en database, til håndtering af indholdet? Hvilke fordele er der? eller eventuelle ulemper?

-Hvorfor ikke bare vise og gemme indholdet fra databasen, på hjemmesiden, uden det bindeled, med fx kun PHP? For mig virker det lidt som dobbelt arbejde?

På forhånd tak.
Avatar billede arne_v Ekspert
11. juni 2013 - 15:43 #1
Jeg tror at spoergsmaalet er forkert.

De rigtige 2 spoergsmaal er:

1) Giver det mening at flytte UI logic fra server side (PHP) til client side (JavaScript)?

Svar: ja - det giver bedre UX (blinkfri).

2) Hvad er et godt data format mellem JavaScript og server side (PHP)?

Svar: JSON er et kompakt format som virker godt med lave baandbredder og har god support i JavaScript og de fleste server side teknologier.
Avatar billede keysersoze Guru
11. juni 2013 - 21:00 #2
Helt enig med arne_v. Hvis du benytter ren PHP/HTML så opdaterer du hele siden hver gang brugeren foretager en handling men dels er det langt fra altid nødvendigt og dels er det med til at ødelægge brugerens oplevelse - derfor benyttes der i moderne webapplikationer i meget høj grad javascript til at opdatere kun enkelte dele af siden og når det kræver data fra serveren er det selvfølgelig optimalt med et så kompakt format som muligt, tidligere var det ofte XML men det er mere og mere gået over til JSON.
Avatar billede Smitche Praktikant
12. juni 2013 - 10:30 #3
Tak for jeres svar, jeg er dog stadig ikke helt sikker på at jeg forstår idéen i det.

Jeg har prøvet at bruge jQuery og AJAX med en load-funktion, der genlæser enkelte elementer med informationer fra en PHP-fil, der kan man også hente informationer til enkelte elementer uden at genlæse hele siden.

Hvad er fordelen ved at lave det om til JSON først? Det skal vel stadig hentes ud af databasen?

Er det for at skåne klienten for forsinkelser eller er det mængden af data der sendes mellem client-side og serveren?
Sådan man kan sende det via JSON til en JSON-fil der så sørger for at indsætte det i serveren eller trække det ud, så man kun beskæftiger sig med JSON som client?

Jeg har erfaringer med PHP og Javascript, men har svært ved at forstå hvad præcis det er man opnår ved at bruge JSON?
Avatar billede keysersoze Guru
12. juni 2013 - 11:11 #4
Data skal selvfølgelig hentes ud af databasen først men når du så har lavet dit udtræk skal du jo under alle omstændigheder beslutte dig for et dataformat at komme videre med - med PHP bliver dine data fra databasen jo heller ikke under ikke-Ajax omstændigheder på magisk vis omdannet til HTML, her transformerer du det jo også.

Du kan for så vidt også, som du måske allerede har gjort, sende HTML-brudstykker fremfor JSON eller XML i et AJAX-scenarie og det fungerer da også fint men ofte er fx JSON et betydeligt mere kompakt format ligesom det er data du ville kunne sende til andre typer applikationer end bare web.
Avatar billede arne_v Ekspert
13. juni 2013 - 03:13 #5
PHP henter noget data fra databasen.

Det skal sendes til client.

Det skal sendes i et eller andet format.

Saa der skal konverteres til et eller andet format.

Mulighederne er:

browser HTML render<----(HTML/HTTP)----PHP script<----MySQL

browser JavaScript engine<----(XML/HTTP)----PHP script<----MySQL

browser JavaScript engine<----(JSON/HTTP)----PHP script<----MySQL

JSON er langt den mindst baandbredde kraevende af disse.
Avatar billede Smitche Praktikant
04. juli 2013 - 10:07 #6
Hvis i begge smider et svar, så lukker jeg denne tråd.

Tak for jeres input.
Avatar billede keysersoze Guru
04. juli 2013 - 12:06 #7
svar
Avatar billede arne_v Ekspert
04. juli 2013 - 14:49 #8
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester