Jump to content
php.lv forumi
  • 0

js strings vairākās rindās


codez

Question

Gribās izveidot javascript-ā smukus html templeitus, bet javascript neļauj rakstīt stringu vairākās rindās, tipa tā:

 

tpl='
<div>
Hello world
</div>
';

 

tāpēc pagaidām jāsamierinās ar

tpl='<div>';
tpl+='Hello world';
tpl+='</div>';

 

Vai kādam ir pieredze kā visērtāk javascriptā rakstīt šādu templeitus?

Link to comment
Share on other sites

14 answers to this question

Recommended Posts

  • 0

$sTpl = 'tavs
krutais
templeits
';
echo '<script type="text/javascript">var sTpl = "' . str_replace(array('\\', '"', "'", "\r", "\n"), array('\\\\', '\"', "\'", '', ''), $sTpl) . '";</script>';

 

ja datus neveido ar php, tad var darīt tā, kā Aleksejs parādīja ;)

http://www.codehouse.com/javascript/tips/string_multiline/

Edited by 2easy
Link to comment
Share on other sites

  • 0

Aleksej, strādā, nemaz nezināju šādu, laikam noderēs.

 

2easy, šoreiz js failus neģenrēju php, tāpēc vajag, lai normāli var rakstīt ar teksta redaktoru.

 

Un kā saprast to, ka js tam nav domāts?

Izmantojot šādu pieeju, jāsūta mazāk datu, jo daļa lapas satura tiek uzģenerēta javascriptiski, kas tiek kešots.

Edited by codez
Link to comment
Share on other sites

  • 0

labi, codez, ņemu savus vārdus atpakaļ, jo var būt pure js applikācijas, kur multi line strings ir ērts. tb tā var darīt, bet tā tik bieži nedara. kr4 tam parādās jēga tikai heavy js applikācijās. "parasti" js atslogo no liekām darbībām un liek vnk uzsetot no php/ajax saņemtos datus (tipa lai nekaitinātu useri, kura cpu slodze var iebraukt vairākos desmitos procentu :P)

 

un arī ar ajax saņemtos datus pēc tam nokešo, pieglabājot kkādā savā globālā cache objektā

tā ka ar performanci viss ir kārtībā ;)

Edited by 2easy
Link to comment
Share on other sites

  • 0

Ja jāuzseto vairākas vērtības, tad

s='\
<div>'+v1+'</div>\
<div>'+v2+'</div>\
<div>'+v3+'</div>\
<div>'+v4+'</div>\
<div>'+v5+'</div>\
';
$('#container').html(s);

 

 

IMHO būs ātrāks nekā, it sevišķi, ja vērtības sniedzās vairākos desmitos, tad jūtami ātrāks.

 

$('#v1').html(v1);
$('#v2').html(v2);
$('#v3').html(v3);
$('#v4').html(v4);
$('#v5').html(v5);

 

pie tam šijā gadījumā pati html struktūra kaut kur vēl jāuzģenerē vai jātsūta kopa ar lapu sākumā.

Edited by codez
Link to comment
Share on other sites

  • 0

un arī ar ajax saņemtos datus pēc tam nokešo, pieglabājot kkādā savā globālā cache objektā

tā ka ar performanci viss ir kārtībā ;)

Šeit es vairāk runāju par variantu, kad lapā ir kaut kāda kopēja funkcionalitāte un GUI, kura arī jāattēlo un lietotājs iet no vienas lapas sadaļas uz citu, taču šis GUI tiek attēlots javascriptiski un jāielādē tikai pirmoreiz, pēc tam jau viņš ir js nokešotajā failā, kamēr nekādu globālu cache objektu šādi nepārnest starp lapām.

Vēl jau protams pastāv iespēja taisīt template html failus, kurus dinamiski lādē pie konkrētā templeita vajadzības un kuri arī kešojas, bet, ja templeitiņi ir daudz un mazi, tad vienalga lietotājam ar tukšu kešu nākas sākumā salādēt daudz sīku failiņu.

Link to comment
Share on other sites

  • 0

kamēr nekādu globālu cache objektu šādi nepārnest starp lapām.

labrīt!!! ajax applikācijas ielādējas vnreiz, un tad katru extra lapu ar background requestu (neko nepārlādējot) pieliek klāt, parāda un nokešo. tā ka nākamreiz uzejot uz šī linka http://domain/#/par-mums vsp nevajag nekādu background requestu, bet uzreiz ņem datus no globālā cache objekta. to uzkodēt ir 3x rindiņas...

 

man ir viena puspabeigta lapa (var droši nekritizēt, tur drīz būs daudz rewrite + optimizācijas. tipa pašreizējais ir tikai draft), kur tā jau notiek http://jaunmartini.lv

pirmais requests ir ar ajax, pēc tam no cache

Edited by 2easy
Link to comment
Share on other sites

  • 0

"dinamiskas" lapas tāpat kešo taču ar ļoti īsu timeout: ~1 minūte (varbūt mazāk, varbūt vairāk)

savukārt uz servera tās kešo ilgāk: līdz tuvākajām izmaiņām (insert/update)

 

tā ka nemaz tik dinamiskas tās dinamiskās lapas nav. tb nav obligāti vnm viss jātaisa superdinamisks. servera cpu arī dažu sekunžu atpūta ir milzīgi garš brīvlaiks :))

Edited by 2easy
Link to comment
Share on other sites

  • 0

"dinamiskas" lapas tāpat kešo taču ar ļoti īsu timeout: ~1 minūte (varbūt mazāk, varbūt vairāk)

 

Camoon, neviens taču nekešo tādas lietas, kā inboxa saturu, aicinājumu draudzēties, utt. Tās ir lietas, kurām jāatjaunojas uzreiz, tiklīdz jūzeris otrā galā pieprasa.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...