Kom ihåg mig?
Home Menu

Menu


HTML generering, klient eller server?

 
Ämnesverktyg Visningsalternativ
Oläst 2011-03-26, 16:47 #1
jayzee jayzee är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Aug 2008
Inlägg: 1 089
jayzee jayzee är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Aug 2008
Inlägg: 1 089
Question HTML generering, klient eller server?

Sitter just nu och funderar om ett PHP skript som anropas via Ajax skall returnera färdigformaterad HTML kod som Javaskript bara skall lägga i ett element eller om skriptet skall returnera data som JSON och sedan kan Javaskriptet formatera upp det med tex. templates.

Enda nackdelen med server-side genereringen jag kommer på är att mer data skickas.
Vilka Er era åsikter, vilket är bäst och mer framtidssäkert?
jayzee är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-03-26, 17:42 #2
pelmereds avatar
pelmered pelmered är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: May 2010
Inlägg: 1 342
pelmered pelmered är inte uppkopplad
Har WN som tidsfördriv
pelmereds avatar
 
Reg.datum: May 2010
Inlägg: 1 342
Det kommer troligen inte märkas någon större skillnad för användaren eller för belastningen på din server om det inte är stora mängder data med massa fält.

Är det en hel sida tycker jag du ska generera HTML på servern.
Är det delar eller enskilda fält beror det på hur många olika fält är det som ska uppdateras. Hur många är det?
pelmered är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-03-26, 17:49 #3
jayzee jayzee är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Aug 2008
Inlägg: 1 089
jayzee jayzee är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Aug 2008
Inlägg: 1 089
Det är en meddelande-sida, där man har ett antal flikar (inkorg, skickat, skicka nytt, ...). Antalet meddelanden kan vara svårt att förutse men så som det är nu funderar jag på att begränsa det till 20st.
jayzee är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-03-26, 18:25 #4
dAEks avatar
dAEk dAEk är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Dec 2006
Inlägg: 678
dAEk dAEk är inte uppkopplad
Mycket flitig postare
dAEks avatar
 
Reg.datum: Dec 2006
Inlägg: 678
Låt servern svara med endast data eftersom:
  • det blir lättare att återanvända kod och du får bättre struktur i projektet. Låter du servern skicka med markup är du låst till t.ex en ul-lista om du nu returnerar en sån. I framtiden kanske samma data ska användas på en annan sida men märkas upp på ett annat sätt, och då vill man ju helst inte kopiera den gamla funktionen och ändra Html:n eller lägga in fula if-elses i den befintliga funktionen.

  • underhållsarbetet blir lättare. Ingen tycker om att leta efter och ändra Html-kod i server-kod.

  • det blir mindre overhead i svaren. Svarar servern med markup och funktionen anropas 100 gånger skickas markuppen 99 gånger i onödan. Oftast är det här knappast ett problem men ändå.

Det blir lite mer jobb för webbläsarna men jag tycker att fördelarna är fler och väger tyngre än nackdelarna.
dAEk är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-03-26, 23:13 #5
Syke Syke är inte uppkopplad
Medlem
 
Reg.datum: Mar 2008
Inlägg: 297
Syke Syke är inte uppkopplad
Medlem
 
Reg.datum: Mar 2008
Inlägg: 297
Jag skulle nog köra JSON-data från servern som sedan läggs in i html-template (ex. mustache) mha javascript. Mina $0.02.
Syke är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-03-27, 09:22 #6
jayzee jayzee är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Aug 2008
Inlägg: 1 089
jayzee jayzee är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Aug 2008
Inlägg: 1 089
Tack grabbar, vi tänker i samma bana. JSON is a way to go.
jayzee är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-03-27, 10:21 #7
pelmereds avatar
pelmered pelmered är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: May 2010
Inlägg: 1 342
pelmered pelmered är inte uppkopplad
Har WN som tidsfördriv
pelmereds avatar
 
Reg.datum: May 2010
Inlägg: 1 342
Citat:
Ursprungligen postat av dAEk Visa inlägg
Låt servern svara med endast data eftersom:

det blir lättare att återanvända kod och du får bättre struktur i projektet. Låter du servern skicka med markup är du låst till t.ex en ul-lista om du nu returnerar en sån. I framtiden kanske samma data ska användas på en annan sida men märkas upp på ett annat sätt, och då vill man ju helst inte kopiera den gamla funktionen och ändra Html:n eller lägga in fula if-elses i den befintliga funktionen.


underhållsarbetet blir lättare. Ingen tycker om att leta efter och ändra Html-kod i server-kod.
I beg to differ.
Jag skulle säga att det är väldigt mycket enklare att få bra struktur på server side-genereringen än om man ska hantera massa logik med JavaScript. JavaScript-kod är i min mening mycket svårare att strukturera, felsöka och underhålla. Därför tycker jag inte man ska ha för mycket logik där om det inte finns en uppenbar vinst med det(vilket jag är osäker på att det finns i det här fallet).

Gör man dessutom någon form av template där man stoppar in datan får man bra struktur med separering av data och och markupen.

Citat:
Ursprungligen postat av dAEk Visa inlägg
det blir mindre overhead i svaren. Svarar servern med markup och funktionen anropas 100 gånger skickas markuppen 99 gånger i onödan. Oftast är det här knappast ett problem men ändå.


Det blir lite mer jobb för webbläsarna men jag tycker att fördelarna är fler och väger tyngre än nackdelarna.
Jag tvivlar att på att det blir någon större skillnad på belastningen. Det som kostar prestanda är generellt sett att hämta datan från databasen(eller likande), inte att generera HTML-koden. Vid stora trafikvolymer är det väl nog endast på bandbreddsanvändningen som man skulle märka någon skillnad.
Med den här lösningen lägger du istället över mycket av beräkningarna på klienten så användare med långsammare datorer eller webbläsare med långsamma JavaScriptmotorer vilket mycket väl kommer ge en märkbar prestandaförsämring.
pelmered är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-03-27, 12:34 #8
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
Citat:
Ursprungligen postat av dAEk Visa inlägg
[*] underhållsarbetet blir lättare. Ingen tycker om att leta efter och ändra Html-kod i server-kod.
Fast du kan ju lägga html-koden i en template-fil, då får du bättre struktur och slipper leta.
__________________
Full-stack developer, free for smaller assignments
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-03-27, 13:40 #9
jayzee jayzee är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Aug 2008
Inlägg: 1 089
jayzee jayzee är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Aug 2008
Inlägg: 1 089
Citat:
Ursprungligen postat av ITisGood.se Visa inlägg
I beg to differ.
Jag tvivlar att på att det blir någon större skillnad på belastningen. Det som kostar prestanda är generellt sett att hämta datan från databasen(eller likande), inte att generera HTML-koden.
HTML koden genereras utifrån resultaten från databasen.
jayzee är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-03-27, 14:05 #10
randis randis är inte uppkopplad
Nykomling
 
Reg.datum: Apr 2009
Inlägg: 45
randis randis är inte uppkopplad
Nykomling
 
Reg.datum: Apr 2009
Inlägg: 45
Jag håller med ITisGood till 100%. Det finns inget som hindrar dig från att jobba med View separat på servern även vid ett Ajax anrop. Jag tycker inte javascript ska användas för layout. Det är inte vad det är avsett för i min mening. PHP/Asp däremot är avsett för att generera HTML kod dynamiskt.

Du har ju sannolikt en template för hur sidan ska se ut som används av serversidan redan. Varför man då ska göra ytterligare en template för klientsidan att använda förstår jag inte. Det om något skapar ju problem vid uppdateringar.

Om inkorg visas som standard när man laddar "mina meddelanden" så gissar jag att inkorgen inkluderas redan på serversidan, och att det inte är förrän man byter till "skickat" eller annan flik i "mina meddelanden" som den utnyttjar Ajax. Sålunda har du ju redan allt på serversidan som krävs för att generera den layout du vill ha.
randis är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 06:11.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017