Tag Archives: JavaScript

Hitro in enostavno: Ustvarite SharePointovo mesto z ostalo

Obstaja veliko virov okoli ki kažejo, kako to storiti, vendar nisem mogel najti povezavo obsežno go-do, Torej, tukaj smo.

Ustvarite SharePointovo mesto z uporabo programskega vmesnika REST.  Tukaj je primer popolnoma pečen:

<!--
    SiteRequestForm.html: Zbirajo informacije in ustvarite mesto za uporabnika.
-->

<Center>
<Tabela>
    <tr>
        <TD>Ime mesta:</TD>
        <TD><vnos vrsta= "besedilo" ime= "Imemesta" ID= "Imemesta" /></TD>
    </tr>
    <tr>
        <TD ColSpan= "2">
            <vnos vrsta= "submit" ID= "CreateSiteButton" vrednost= "Ustvarjanja mesta" />
        </TD>
    </tr>
</Tabela>
</Center>

<skript src="../Plugins/jQuery-1.11.0.min.js"></skript>

<skript>
var CreateSiteLogicContainer = {

    createSiteData: {
            "parametri": {
                __metadata: { "tip": "SP.WebInfoCreationInformation" },
                URL: "Paultest1",
                Naslov: "Paultest1",
                Opis: "preostali ustvaril spletno z Paul!",
                Jezik: 1033,
                Spletne: "sts",
                UseUniquePermissions: FALSE
            }
    },

    createSite: Funkcija () {

        jQuery.support.cors = True;

        CreateSiteLogicContainer.createSiteData.parameters.Url = $("#SiteName").Val();
        
        $.Ajax({
            URL: "https://bigapplesharepoint.sharepoint.com/NBAIADev/_api/web/webinfos/add",
            metoda: "POST",

            glave: {
                "Sprejeti": "uporaba/json; odata = verbose",
                "content-type": "uporaba/json;odata = verbose",
                "X-RequestDigest": $("#__REQUESTDIGEST").Val()
            },

            podatkov: JSON.stringify(CreateSiteLogicContainer.createSiteData),

            uspeh: Funkcija () { Opozorilo("uspeh"); },
            Napaka: Funkcija () { Opozorilo("napaka"); }

        });
    },

    wireUpForm: Funkcija () {
        $("#CreateSiteButton").kliknite(Funkcija () {
            Opozorilo(»Tem, da poskusite in ustvarjanja mesta.");
            CreateSiteLogicContainer.createSite();
        });
    }


}

CreateSiteLogicContainer.wireUpForm();

</skript>

Ko uspešno, dobiš JSON paket v odgovor takole:

image

Moj ključnih misli in learnings iz tega:

  • Ta pristop uporablja jQuery.  V mojem primeru, moj jQuery knjižnica se nahaja v ".../ plugins. "  Boste želeli spremeniti, da pokažete na vaš najljubši JQ namestitev.
  • Lahko kopirate in prilepite to je celo odlomek v spletni gradnik urejevalnika vsebine na strani ter to should opus šele lep.  Boste želeli, da spremenite končna točka API klic in preverite, ali se sklicujete JQ pravilno.
  • URL je glede na vaš API endpoint.  V mojem primeru, je ustvarjanje podmesta pod https://bigapplesharepoint.com
  • Vi ne potreba skrbeti dolžine vsebine. Nekaj blog delovnih mest in MSDN dokumenta pomeni, da vam, vendar se je zgodilo mi samodejno, ki predvidevam je ravna z $Ajax klica, sama.
  • Ta vrstica mora izogne "prepovedano" odziv: "X-RequestDigest": $("#__REQUESTDIGEST").Val().  So drugi ways uganjati to, ampak to je zelo lepo.  So izgubili povezavo na blog, ki to bližnjico.  H/T vam, skrivnostni blogger!

Vso srečo in upanje to pomoč nekdo ven.

</namen>

undefinedNaročite se na moj blog.

Sledite mi na Cvrkutati na http://www.twitter.com/pagalvin

Hitro in preprosto: SharePoint ostalo klic samo vrne 100 Zapisi

Sem delal na javno sooča spletno stran za moje SharePoint prakse tukaj v New York in ga uporablja veliko JavaScript in ostalo klicev prikažete vsebino.

Med razvojem kopno, Ustvariti majhne dataset s samo 10 ali tako vrstice v seznam po meri in moji ostali klici potegnil od tam.  Enkrat sem vrč seznam imeti nekaj sto vrstic podatkov, da test za pričakovano rast, Sem ugotovila, da je že točno 100 vrstic vrne nazaj na moje klice ostalo.

To je zelo preprosta stvar za naslov.  V mojem primeru (in menim, v večini primerov), privzeto ostali klici v SharePoint (in morebiti kot industrijski standard?) vrnitev 100 vrstice.  Vrniti več kot privzeto, uporabite $top parameter na vaš klic, kot v:

PRITI /Insights Dev/_api/web/lists/GetByTitle("MockBlog")/elementi?$Izberite = ID,Naslov,Kategorije/naslov,Blog_x0020_Author/naslov,DatePublished,BlogSummary&$Razširite = Blog_x0020_Author,Kategorije&$filter =&$Top = 9999

Pobral sem 9999 v tem primeru, ker vem da growth-wise, ne bo več kot 200 ali tako vrstice dodati ta seznam v letu.  Če postane Neokretan, lahko izvajamo nekaj ostranjevalne po cesti.

</namen>

undefinedNaročite se na moj blog.

Sledite mi na Cvrkutati na http://www.twitter.com/pagalvin

Revež je predpomnjenje v JavaScript

[TL;DR. različica: uporablja piškotke za shranjevanje rezultatov asinhron klici; bili rezultati zadnjih asinhron klici takoj in jih nato potrditi po nalaganja strani.]

Sem delal na SharePointovem mestu intranet za stranko, da značilnosti, med drugim, stilizirane sekundarni navigacija, katerih možnosti menija se upravljajo preko rednih stare seznam po meri.  Ideja je, da stranka dobi nadzor nad "svoje" mesto meni brez vpliva ali vpliva globalne navigacije, dal, ki jih je.

(Obstaja nekaj neverjetno subverzivna o dodajanju CEWP, ki kaže na datoteko HTML, ki naloži nekaj CSS in JS bistveno spreminjajo skoraj vse o spletnega mesta obnašanje... ampak to je za drugo delovno mesto)

Šifra tega zal prepost:

Sore spot tukaj je, da vsakič, ko kdorkoli izmed na spletnih straneh zadetkov, to uporabnik spletnega brskalnika je dosegel, da se elementi s seznama.  Ko dev je popolna in testiranje izkazal stvari stabilno in popolne, Ta klic je nepotrebno več kot 99% od takrat redko spremembe v meniju.  Je tudi čudno UI določajo, kateri je splošen v tem krasnem novem svetu spletnih mest hiper-ajaxy-stran postane in šele nato render meniju.  Je živčnosti in moteča v mojem mnenju.  In živčnosti. Tako, predpomnjenje. 

Sem spremenil logika thusly:

  • Poiščite piškotek v brskalnik, ki vsebuje jedilnik, kot sem nazadnje prebral
    • Če najdemo, Render takoj.  Ne čakati na strani konča nakladanja.  (Vi potreba prepričati se vaš HTML strateško dani tukaj, vendar to ni težko narediti).
  • Čakati na strani konča nakladanja in da je Asinhroni klic otovoriti ki gre gor jedilnik reč na seznamu using počitek ali lists.asmx ali karkoli
  • Primerjati, kaj imam proti piškotek
    • Če se ujema, ustavi se
    • Drugače, z uporabo jQuery, dinamično zapolnijo kup, če <Li>je v a <UL>
  • Uporaba CSS storiti vse oblikovanje
  • Dobiček!

Nekateri od vas bodo rekli, "Hej! ni resnično caching tekoč naprej vsepovsod ker berete meni vseeno vsak čas.”  In imaš prav-ne dajem strežnik kakršnokoli odmor.  Ampak ker klic je asinhron in se zgodi, ko je začetno stran HTML tovora popolnoma postane, "meni" bolj odziven na uporabnika.  Meni postane precej toliko, kot stran črpa.  Če se meni zgodi, da sprememba, uporabnik je izpostavljen živčnosti ponovno pripravi menija, ampak samo en čas.

Obstaja nekaj načinov, da bi ta caching učinkovitejši in pomagati strežniku hkrati:

  • V pravilu, da "piškotek cache" velja za najmanj 24 ur ali neki drugi časovni okvir. Dokler je ni poteklo piškotek, uporabite piškotek je meni posnetek in nikoli zadeti strežnik.

No... to je vse, ki pridejo na misel zdaj :). 

Če ima kdo kakšno pametno ideje tukaj bi radi vedeli zanje.

In nenazadnje-to tehniko se lahko uporabijo za druge stvari.  Ta odjemalski strani je število podatkovnih stvari na različnih straneh, Mnogi od njih spreminjajo razmeroma redko (kot enkrat na teden ali enkrat na mesec).  Če ciljate posebnih področjih funkcionalnosti, lahko daš več odgovarajoč UI s potegom vsebine iz lokalnih piškotek trgovine in vračanje takoj.  Zdi hitreje uporabniku, tudi če ne shranjujete strežnik ciklov.  Vi lahko z odločitvijo o nekaterih pogojih in sprožilce, da izničita ta predpomnilnik lokalnih piškotek shrani strežnik ciklov.  To je vse situacijsko in artsy stvari in res najbolj zabavno :). 

</namen>

undefinedNaročite se na moj blog.

Sledite mi na Cvrkutati na http://www.twitter.com/pagalvin