Kategoriaj Arkivoj: JavaScript

HTTP 406 Eraro Kiam Uzanta Angular $http.Akiras #Kontra? SharePoint RIPOZA Fino Punktoj

Ĝisdatigo: Marc AD ndersson atentigis #?i tiu grandan pecon de info: Http://Blogoj.Oficejo.Com/2014/08/13/json-lumo-subteno-ripozo-sharepoint-api-liberigita/. Kiu klarigas tre :).

Kiu povas esti la plej malbona titolo de bloga #po?to iam ajn! Anyhoo.

Mi tipe faras ĉiujn de mia prototyping kontraŭ O365 okazo. Mi havas mian propran okazon por ke mi ne devas esti maltrankvilita pri influanta iun ajn alia. Kiel flankenmetite ?? Memoras kiam nin vokas portita #?irka? virtualaj #ma?ino sur niaj tekkomputiloj kun MUSKO ?? SQLa Servilo, IIS, Decidanta Hyper-V #kontra?. VMWare? Anyhoo?

Mi evoluigis app uzanta Angular en #?i tiu medio kiu faras, Inter aliaj aferoj, Tio ĉi:

$Http.Akiras(ServerUrl)
.Sukceso(Funkcio(Datumoj, Statuso, Titoloj, Config) {

Var getLinksResponse = datumo;

GetLinksResponse.Valoro.ForEach(Funkcio(TheResult) {

// Kaj tiel plu kaj do #?a?mo

Tio ĉi estis laboranta nuran monpunon en du malsama SharePoint enretaj medioj. Tamen, Kiam mia kolego ported ?i al Cloudshare okazo, Li estis akiranta HTTP 406 Eraro (Kiu estis la unua tempo mi iam ajn akiris ke unu, Tiel ?? Yay, Mi konjektas). Ni faris iom de esploro kaj rimarkita ke la “Akcepti” titolon estis ekstere. SharePoint enreta estis perfekte #feli?a kun:

Akcepti: Apliko/json

Sed la cloudshare okazo (Kiu estas SP sur prem, Gastigita en virtuala servilo) Dezirita la #klasika?o ??Datumo=verbose?? Aldonita en #anka?:

Akcepti: Apliko/json;Odata=verbose

Ripari tion, Ni aldonis la titolon kiel tia:

Var config = {Titoloj: {
??Ccept?: ??Pplication/json;Odata=verbose?
}
};

$Http.Akiras(ServerUrl,Config)
.Sukceso(Funkcio(Datumoj, Statuso, Titoloj, Config) {

Var getLinksResponse = datumo;

GetLinksResponse.Valoro.ForEach(Funkcio(TheResult) {

// Kaj tiel plu kaj do #?a?mo

Kiu akiris liverita de la 406, Sed ĝi ankaŭ ŝanĝis la formaton de la respondo. Ĝi estis pli … verbose. (Haha!) Pli da #?an?o estis postulita kaj #?i tie?? La fina rezulto:

Var config = {Titoloj: {
??Ccept?: ??Pplication/json;Odata=verbose?
}
};

$Http.Akiras(ServerUrl,Config)
.Sukceso(Funkcio(Datumoj, Statuso, Titoloj, Config) {

Var getLinksResponse = datumo;

GetLinksResponse.D.Rezultoj.ForEach(Funkcio(TheResult) {

// Kaj tiel plu kaj do #?a?mo

#Tio ?i nur turnita en 30 Eta problemo por ni, Do ni lucked ekstere. Espereble iu trovas #?i tiu utilan.

</Fino>

Angular Malsukcesas al Bootstrap en IE9

I??E estita ludanta proksimume kun Angular.Js por la lasta longa momento kaj por la vivo de mi, Mi povis NOT akiras mia Angular apps #lan?i en IE9.  Ili #?iu laboras bone en IE11 sed IE9 nur montrus la buklajn stegojn kaj similajn pecojn.

Mi #ser?i proksimume kaj couldn?? Trovas iun ajn plendanta pri lia problemo.  ?i laboris bone en Chrome, IE11, Nur ne IE9.

Mi estis #?eti de de la fakto ke la IEa regilaro estis donanta min eraroj tiel:

SEC7111: HTTPSa sekureco estas kompromisita de res://Ieframe.Dll/forbidframing.Htm

KE eraro havis min pensanta estis iu problemo #el?uti la angular #a? aliaj bibliotekoj kiu mi devis.  Kiel ĝi rezultas, #Tio ?i ne estis la afero.

De #en?ovi #?irka? la interretoj, Mi fine eltrovis ke la frazo mi devis #ser?i estis ??Ootstrap?? Kaj ke ?i #?ajni kiel la bootstrapping estis malsukcesanta.  En la fino, Mia problemo estis ke mi ornamis mia <Html> Etikedo kun la ng-app eco, Kiel je:

<Html ng-app="MatrixApp">

Puto, KE didn?? Laboro por IE9.  Male, Mi volvis #?iuj la ripozo de la HTML en la <Korpo> En div kaj referencoj MatrixApp ke vojo.

Problemo solvis.

Espereble #tio ?i savas iun iu #aflikti?o.

</Fino>

Kreskanta Konscion / Adopto de JavaScript Kadroj

Mia kolego, Javed Ansari (http://www.bigapplesharepoint.com/team?showExpertName=Javed%20Ansari&rsource=pgblog), Skribis mallongan resuman blogan #po?to sur kadroj li #?ati #a? #almena? estis uzanta kun kun SharePoint: http://www.bigapplesharepoint.com/pages/View-An-Insight.aspx?BlogID=53&rsource=PGBlog).

JQuery #?ajni esti la venkinto sur la kampo, Tiel paroli, Por jaroj nun, Sed la aliaj estas pli novaj kaj stills speco batali ?in, Kiel Angular. (SPServices, Nature, Estis viva #?paranto por jaroj kaj #da?ri esti do mi pensas).

Kio estas homoj uzanta? Estas ili koncentris pli da sur Microsoft?? Tooling (CSOM / JSOM) #A? movanta pli da al Angular, #Knoka?to, Ember, Ktp?

Mi havas kreskantan #anta?ju?o al #?i tiu ne-Microsoft kadroj. Mi pensas la MSFTan #a?o estas pli malfacila kaj pli malfacila labori kun, Postulanta #preska? tiom multe lerni kurbon kiel malnova-stila servilo-flanka dev.

#Po?ti rimarkon #?i tie #a? super #?e Granda Apple SharePoint Se vi deziras diskuti (Granda Pomo havos pli da probableco de bona diskuto).

</Fino>

Venki #?ena Problemon kun Relativa Urls en SharePoint Rapida #Lan?o

Mi deziris aldoni ligon al la rapida #lan?o navigado la alia tago kaj SharePoint diris min:

image

Pura teksta versio de kiu estas:

Certigi ke la URL estas valida kaj komencas kun #a? valida karaktero (Nombra signo (#) #A? #anta?a #detran?o (/)) #A? valida subtenita protokolon (Ekzemple, ‘Http://', ‘Https://', ‘Dosiero://', ‘Ftp://', ‘Mailto:', ‘Sciigoj:').

??lech kaj pox!?? Mi diris.

Workaround al #tio ?i estas uzi JavaScript trovi konatan ligon en la rapida #lan?o kaj superregi #?ia konduton.

Elprovi #tio ?i, Aldoni novan ligon al via testa ejo thusly:

image

Mi uzis jQuery. Solvi ĝin, Akiri kelkaj JavaScript kaj jQuery al la #pa?o uzanta vian preferatan teknikon kaj kun linio de kodo tiel:

 

$(Dokumento).Preta( Funkcio () {

    $("al:Enhavas('Testa URL #anstata?a?o')").Klako(Funkcio () { Atentigo("#?An?i klakan konduton!"); Reveno Falsa;});

});

Kaj Bob?? Via onklo.

La jQuery elektilo trovas #?iu <al> Etikedo kiu havas “Testan URL anstataŭaĵo” en ĝia nomo. Vi povas deziri trovi-melodio ke dependanta sur via ligo kaj tia.

La .Klako(Funkcio() Superregas ajna SharePoint estus farinta kiam la uzanton klakis. Fari certe vin “revenas falsan” aŭ alia ĝi faros vian aĵon kaj tiam provi al la href afero ankaŭ, Kiu estas #preska? certe ne via celo.

#Tio ?i estis farita kaj testo en SharePoint enreta medio sed devus labori bone je 2010 Kaj #anta?e #anka?.

</Fino>

undefinedAboni al mia blogo.

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

#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