Tag Archives: JavaScript

Greitai ir lengvai: Sukurti SharePoint svetainėje naudodami poilsio

Yra daug išteklių aplink tą parodyti kaip tai padaryti, bet aš negalėjo rasti išsamią pereiti į nuorodą, Taigi čia mes.

Galite sukurti SharePoint svetainėje naudodami poilsio API.  Čia yra visiškai keptos pavyzdys:

<!--
    SiteRequestForm.html: Rinkti informaciją ir kurti svetainę, skirtą vartotojo.
-->

<centras>
<lentelė>
    <TR>
        <TD>Svetainės pavadinimas:</TD>
        <TD><įvedimo tipo= "tekstas" vardas, pavadinimas= "SiteName" ID= "SiteName" /></TD>
    </TR>
    <TR>
        <TD stulpelio apimties= "2">
            <įvedimo tipo= "pateikti" ID= "CreateSiteButton" vertė= "Sukurti svetainės" />
        </TD>
    </TR>
</lentelė>
</centras>

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

<scenarijų>
var CreateSiteLogicContainer = {

    createSiteData: {
            "parametrai": {
                __metadata: { "tipo": "SP.WebInfoCreationInformation" },
                URL: "Paultest1",
                Antraštinė dalis: "Paultest1",
                Aprašymas: "poilsio sukurtas web by Paulius!",
                Kalba: 1033,
                Tinklalapio šablono: "sts",
                UseUniquePermissions: klaidinga
            }
    },

    createSite: funkcija () {

        jQuery.support.cors = tiesa;

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

            antraštės: {
                "Priimti": "paraiškos/json; oData = kalbantys",
                "content-type": "paraiškos/json;oData = kalbantys",
                "X-RequestDigest": $("#__REQUESTDIGEST").val()
            },

            duomenų: JSON.stringify(CreateSiteLogicContainer.createSiteData),

            sėkmės: funkcija () { perspėjimas("sėkmė"); },
            klaida: funkcija () { perspėjimas("klaida"); }

        });
    },

    wireUpForm: funkcija () {
        $("#CreateSiteButton").spustelėkite(funkcija () {
            perspėjimas("Pasiruošę išbandyti ir sukurti svetainę.");
            CreateSiteLogicContainer.createSite();
        });
    }


}

CreateSiteLogicContainer.wireUpForm();

</scenarijų>

Kai sėkmingai, Jūs gaunate JSON pakelio atsakymą kaip tai:

image

Mano pagrindinė mintis ir learnings nuo tokių:

  • Šis metodas naudoja jQuery.  Mano atveju, mano jQuery biblioteka įsikūrusi ".../ plugins. "  Jūs norite pakeisti, kad rodytų į jūsų mėgstamą JQ vietą.
  • Jūs galite kopijuoti ir įklijuoti tą visą fragmentą į turinio rengyklės žiniatinklio dalį puslapyje ir ji turi dirbti gerai.  Jūs norite pakeisti galutinis taškas iš API iškvietimas ir įsitikinkite, kad jūs nurodote JQ teisingai.
  • URL yra su savo API galutinį tašką.  Mano atveju, tai yra sukurti antrinės svetainės apačioje https://bigapplesharepoint.com
  • Jums nereikia būti turinį-trumpesni. Kai dienoraščio ir MSDN dokumente reiškia, kad jūs, bet atsitiko man automatiškai, Aš manau yra perkrauta .ajax $ skelbiant pati.
  • Šios eilutės yra reikalinga vengti "draudžiama" atsakymo: "X-RequestDigest": $("#__REQUESTDIGEST").val().  Yra ir kitų būdų tai padaryti, bet tai yra labai gražus.  Aš pamečiau nuorodą į dienoraštį, kad jeigu ši nuoroda.  H/T jums, paslaptingas blogger!

Geros kloties ir tikiuosi, kad tai padės kam nors.

</pabaigos>

undefinedPrenumeruoti savo dienoraštį.

Sekite mane Twitter ne http://www.twitter.com/pagalvin

Greitas ir paprastas: SharePoint poilsio skambinti tik grąžina 100 Įrašai

Aš dirbu visuomenės susiduria su interneto svetainėje mano SharePoint praktikos čia Niujorkas ir ji naudoja daug JavaScript ir poilsio skambučių parinktis Rodyti turinį.

Per geležinkelio plėtros, Sukurti mažas dataset tik 10 arba taip eilučių pasirinktinį sąrašą ir mano poilsio ragina visus traukti iš ten.  Vieną kartą aš Iškilioji sąrašą, kad keletą šimtų eilučių duomenų mėginys tikėtasi augimas, Radau, kad aš gaunu tiksliai 100 eilučių grįžo atgal į savo poilsio skambučius.

Tai labai paprastas dalykas spręsti.  Mano atveju (ir manau, daugeliu atvejų), Numatytasis poilsio kviečia į "SharePoint" (ir galbūt kaip standartinė pramonės sektoriui?) grįžti 100 eilučių.  Grįžti daugiau nei numatyta, Naudokite parametrą $top jūsų pokalbio, kaip ir:

GAUTI /Insights Dev/_api/web/lists/GetByTitle("MockBlog")/elementai?$Pasirinkite = ID,Antraštinė dalis,Kategorijos/pavadinimas,Blog_x0020_Author/pavadinimas,DatePublished,BlogSummary&$išplėsti = Blog_x0020_Author,Kategorijos&$filtras =&$viršaus = 9999

Mane pasirinko 9999 Šiuo atveju, nes žinau, kad growth-wise, nebus daugiau nei 200 ar taip eilučių pridėti prie šio sąrašo per metus.  Jei ji tampa nevikrus, mes įgyvendiname kai ieškai žemyn kelio.

</pabaigos>

undefinedPrenumeruoti savo dienoraštį.

Sekite mane Twitter ne http://www.twitter.com/pagalvin

Vargšas spartinimo JavaScript

[TL;DR versija: naudoja slapukus saugoti async skambinti rezultatai; padaryti pastaruosius async skambinti rezultatai iš karto ir tada patvirtinti jas po puslapio apkrova.]

Aš dirbu SharePoint svetainę klientas kad funkcijos, be kita ko, stilizuoti antrinės navigacijos kurių meniu parinktys yra valdomi per reguliariai senas pasirinktinį sąrašą.  Idėja, kad klientas gauna valdyti "savo" svetainės meniu be paveikti ar paveiks jo irtis pasaulinės navigacijos.

(kažkas neįtikėtinai ardomąją apie naują CEWP, kuris atkreipia dėmesį į HTML failą, krovinys šiek tiek CSS ir JS iš esmės pakeisti beveik viską apie svetainės veikimą... bet tai kitai įstaigai)

Šis gana paprastas kodas:

Gerklės vietoje čia yra tai, kad kiekvieną kartą, kai kas nors pataiko vieną iš svetainės puslapių, to vartotojo naršyklėje siekiančiam gauti elementus iš sąrašo.  Dev baigtas ir testavimas įrodė, ko reikia stabilios ir užpildydamas, uo nebūtina daugiau nei 99% laiko nuo meniu retai keičiasi.  Ji taip pat turi keistą UI įtakos, kuri yra paplitusi šioje brave new world hiper ajaxy interneto svetainėse-puslapio teikia ir tik tada meniu padaryti.  Tai nervingumas ir blaško dėmesį, mano nuomone.  Ir nervingumas. Taigi, Kaupimas talpykloje. 

Modifikavau logika thusly:

  • Ieškoti slapuką į naršyklę, kuri yra meniu kaip paskutinį kartą skaityti
    • Jei nustatyta,, padaryti jį iš karto.  Negalima laukti puslapio įkėlimą.  (Jums reikia įsitikinkite, kad jūsų HTML yra strategiškai išdėstyti čia, Tačiau tai nėra sunku padaryti).
  • Palaukite, kol puslapio įkėlimą ir padaryti su async skambinti įkelti meniu elementus sąraše naudojant poilsio ar lists.asmx ar kas
  • Palyginti ką aš prieš slapukas
    • Jei jis atitinka, sustoti, sustok
    • Kitaip, naudojant jQuery, dinamiškai užpildyti krūva, jei <Li>'s – yra <UL>
  • Naudoti CSS padaryti visas formatavimas
  • Pelno!

Kai jūs ketinate pasakyti, "Ei! nėra jokių realių buferinės vyksta čia nuo jūs skaitote meniu bet kuriuo atveju kiekvieną kartą.”  Ir tu teisus-aš nepateikiu serverio jokios pertraukos.  Bet ir nes skambutis yra async ir atsitinka po pradinio puslapio HTML krovinio visiškai sudarytų sąlygas, tai "mano" jautriau reaguoti į vartotojo.  Meniu tampa gana daug, kaip puslapio atkreipia.  Jei meniu būna, kad pakeitimas, vartotojas yra veikiamas nervingumas iš naujo parengti meniu, bet tik tą vieną kartą.

Yra keletas būdų, kaip padaryti šį spartinimo veiksmingesnę ir padėti atlikti serverio vienu metu:

  • Įdėti, kad "slapukų talpyklą" galioja ne trumpiau kaip taisyklė 24 valandų arba kai kurie kiti terminai. Tol, kol nėra pasibaigęs slapuko, Naudokite slapuką 's meniu fotografiją ir niekada hit serveris.

Well... that's viską, kas ateina į galvą šiuo metu :). 

Jei kas nors turi kokių nors protingas idėjų čia aš norėčiau žinoti jų.

Ir galiausiai – šis metodas gali būti naudojamas kitų dalykų.  Šis klientas puslapyje yra daug dalykų, duomenų valdomas įvairiuose puslapiuose, Daugelis iš jų keičiasi gana retai (pavyzdžiui, kartą per savaitę arba kartą per mėnesį).  Jei taikote pagal konkrečias sritis funkcijos, galite pateikti ir kvalifikacijų UI traukimas turinį iš vietos slapukas parduotuvė ir padaryti iš karto.  Jis mano greičiau vartotojui, net jei ne serverio bet ciklų.  Jūs gali įrašyti serverio ciklų sprendžiant kai kurių sąlygų ir skatina panaikinti šios vietos slapukų talpyklą.  Tai visos situacijos ir artsy stuff ir tikrai labiausiai įdomus :). 

</pabaigos>

undefinedPrenumeruoti savo dienoraštį.

Sekite mane Twitter ne http://www.twitter.com/pagalvin