#Malri?a Viro?? Caching en JavaScript

[TL;D-ra versio: Uzaj kuketoj enteni la rezultojn de async vokoj; Fari la rezultojn de pasinta async vokoj tuj kaj tiam konfirmas ilin post #pa?o-#?ar?o.]

I??E estita laboranta sur SharePoint intrareta ejo por kliento ke #?efa?o, Inter aliaj aferoj, stylized duaranga navigado kies menuaj elektoj estas administrita tra regula malnova #la?menda listo.  La ideo estas ke la kliento akiras kontroli ??Heredanto?? Ejo?? Menuo sen influanta #a? estanta influita de la tutmonda navigado elmetis de ?I.

(Estas io nekredeble renversemulo pri aldonanta CEWP kiu indikas al HTMLa dosiero kiu #?ar?i #kelka CSS kaj JS fundamente #?an?i #preska? #?io pri ejo?? Konduto?? Sed tio?? Por alia #po?to)

La kodo por #?i tiu #sufi?e simpla:

La dolora punkto #?i tie estas ke #?iu tempo iu ajn frapas unu el la ejo?? #Pa?o, KE uzanto?? #Aranea?o retumilo estas elatinganta akiri erojn de la listo.  Unufoje dev estas kompleta kaj elprovado pruvis aferojn esti stabila kaj kompleta, #?I tiu voko estas nenecesa pli ol 99% De la tempo ekde la menuo malofte #?an?o.  ?i #anka? havas strangan UIan efikon kiu estas ofta en #?i tiu #kura?a nova mondo de hyper-ajaxy retejoj ?? La #pa?o faras kaj nur tiam faras la menuon faras.  ?i?? Maltrankvila kaj distranta en mia vido.  Kaj maltrankvila. Tiel, Caching. 

Mi modifis la logikon thusly:

  • #Ser?i kuketon en la retumilo kiu enhavas la menuon kiel mi #da?ri legita ?in
    • Se trovita, Fari ?in tuj.  Don?? Atendo por la #pa?o fini #?ar?ado.  (Vi devas fari certe vian HTML estas strategie lokita #?i tie, Sed ?i?? Ne malfacile fari).
  • Atendo por la #pa?o fini #?ar?ado kaj fari async voko #?ar?i supre menuajn erojn de listo uzanta RIPOZON #a? listoj.asmx #a? kio ajn
  • Kompari kion mi akiris #kontra? la kuketo
    • Se ?i egalas, HALTIGO
    • Alie, Uzanta jQuery, Dynamically #lo?i aron se <Li>?? En <Ul>
  • Uza CSS fari #?iu la aspektigado
  • Profito!

Kelkaj de vi estas iranta diri, ??Ey! Tie?? Neniu vera caching #da?rigi #?i tie ekde vi??E leganta la menuon #?iuokaze #?Iu ununura tempo.”  Kaj vi??E rajto ?? I?? Ne donanta la servilo ajna speco de #rompi?o.  Sed #?ar la voko estas async kaj okazas post la #pa?o?? Komenca HTML payload plene faras, ?i ??Angiloj?? Pli da respondema al la uzanto.  La menuo faras #sufi?e tre kiel la #pa?o tiroj.  Se la menuo okazas al la #?an?o, La uzanto estas submetita al maltrankvila re-tiro de la menuo, Sed nur ke unu fojo.

Estas kelkaj vojoj fari #?i tiu caching pli efika kaj helpo ekstere la servilo samtempe:

  • Metita en regulo ke la ??Ookie konservejo?? Estas valida por minimumo de 24 Horoj #a? kelkaj alia timeframe. Kiel longe kiel estas ne #eksvalidi?i kuketon, Uzi la kuketon?? Menua momentfoto kaj neniam frapita la servilon.

Puto ?? Tio?? #?Iu kiu venas atenti #?uste nun :). 

Se iu ajn havas ajnajn lertajn ideojn #?i tie I?? Amo scii ilin.

Kaj fine ?? #?I tiu tekniko povas esti uzita por alia #a?o.  #?I tiu kliento?? #Pa?o havas nombron de datumo-veturita aferojn sur diversaj #pa?o, Multaj de ili #?an?i relative malofte (#?Ati unufoje semajnon #a? unufoje monato).  Se vi celas specifajn areojn de funkcio, Vi povas doni pli respondema UI de tiranta enhavon de la loka kuketa vendejo kaj faranta tuj.  ?i sentas pli rapidan al la uzanto #e? se vi??E ne savanta la servilon ajnaj cikloj.  Vi Ujo Savi la servilajn ciklojn de decidanta sur kelkaj #kondi?o kaj ellasiloj nuligi #?i tiu lokan kuketan konservejon.  Tio?? #?Iuj situational kaj artsy #a?o kaj vere la plej amuza :). 

</Fino>

undefinedAboni al mia blogo.

Sekvi min sur Pepi ĉe http://www.twitter.com/pagalvin

Unu pensis sur "#Malri?a Viro?? Caching en JavaScript

  1. Jonathan Roussel

    Hi Paul,

    Bela efektivigo, Tio?? Io ni uzas sed ni uzis la HTML5 loka tenada API #anstata? kuketoj. La unua stirado estis ke ni devis enteni pli da ol kuketo povas permesi. Sed plia utilo estas ke ?i ne pliigas payloads, Dum kuketoj estas sendita #malanta?a kaj #anta?en. De dev punkto de vidi ?in?? Tre facila uzi.
    Retumila subteno ne estas perfektigi sed honeste tre bona, http://caniuse.com/namevalue-storage .

    Jonathan

    Respondo

Lasi Respondon

Via retpoŝta adreso ne estos eldonita. Postulita kampojn estas markita *