Tag Archives: JavaScript

Kiire ja lihtne: Luua SharePointi saidil, kasutades ülejäänud

Seal on palju ressursse ümber mis näitavad selle, kuid ma ei suutnud leida tervikliku go-to link, nii et siin me oleme.

Saate luua SharePointi saidil, kasutades ülejäänud API.  Siin on täielikult küpsetatud näide:

<!--
    SiteRequestForm.html: Teabe kogumine ja saidi kasutaja loomine.
-->

<keskus>
<Tabel>
    <TR>
        <TD>Saidi nimi:</TD>
        <TD><sisend tüüp= "tekst" Nimi"SiteName =" ID"SiteName =" /></TD>
    </TR>
    <TR>
        <TD ColSpan= "2">
            <sisend tüüp= "saadad" ID= "CreateSiteButton" väärtus= "Loo sait" />
        </TD>
    </TR>
</Tabel>
</keskus>

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

<skripti>
var CreateSiteLogicContainer = {

    createSiteData: {
            "parameetrid": {
                __metadata: { "tüüp": "SP.WebInfoCreationInformation" },
                URL-i: "Paultest1",
                Pealkiri: "Paultest1",
                Kirjeldus: "ülejäänud loodud web Paul!",
                Keel: 1033,
                WebTemplate: "sts",
                UseUniquePermissions: väär
            }
    },

    createSite: funktsioon () {

        jQuery.support.cors = True;

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

            päised: {
                "Võta vastu": "rakendus/json; odata = verbose",
                "sisutüüp": "rakendus/json;odata = verbose",
                "X-RequestDigest": $("#__REQUESTDIGEST").Val()
            },

            andmed: JSON.stringify(CreateSiteLogicContainer.createSiteData),

            edu: funktsioon () { märguanne("edu"); },
            tõrge: funktsioon () { märguanne("viga"); }

        });
    },

    wireUpForm: funktsioon () {
        $("#CreateSiteButton").Klõpsake nuppu(funktsioon () {
            märguanne("Umbes et proovida ning luua veebilehe.");
            CreateSiteLogicContainer.createSite();
        });
    }


}

CreateSiteLogicContainer.wireUpForm();

</skripti>

Kui edukas, saad vastuseks niimoodi JSON pakettaknad:

image

Minu peamised mõtted ja õpetused selles kaasa:

  • Selline lähenemine kasutab jQuery.  Minu puhul, minu jQuery Raamatukogu asub "../ plugins. "  Soovite muuta see oma lemmik JQ asukoha määramine.
  • Kopeeri ja kleebi see kogu koodijupi sisuredaktori veebiosa lehele ning see peaks toimima suurepäraselt.  Soovite muuta API kõne lõpp-punkti ja veenduge, et viidatava JQ õigesti.
  • URL on suhteline oma API lõpp-punkti.  Minu puhul, See loob alamsaitidele all https://bigapplesharepoint.com
  • Sa ei pea andma sisu pikkus. Mõned blogi postitused ja MSDN dokument eeldab, et sa, kuid juhtus minu jaoks automaatselt, mis eeldas tegeleb $.ajax kõne ise.
  • See rida on vajalik, et vältida "keelatud" vastus: "X-RequestDigest": $("#__REQUESTDIGEST").Val().  On ka muid võimalusi teha, Aga see on päris kena.  Ma kaotasin link blogi, et see otsetee.  H/T teile, salapärane blogger!

Edu ja loodan, et see aitab keegi välja.

</lõpp>

undefinedTelli minu blogi.

Järgi mind vidistama kell http://www.twitter.com/pagalvin

Kiire ja lihtne: SharePointi ülejäänud helistada vaid tagastab 100 Kirjed

Olen töötanud avalik facing veebilehel oma SharePointi tava siin New York ja ta kasutab JavaScript ja ülejäänud nõuab palju sisu.

Põhilistele arenduse käigus, Ma luua väike andmekomplekt on lihtsalt 10 või nii ridade kohandatud loendi ja mu ülejäänud nõuab tõmbas sealt.  Kord I bumped kuni on eeldatav kasvuks testida paar sada andmeridade nimekirja, Ma leidsin, et mul oli saada täpselt 100 tagasi mu ülejäänud telefonikõnedelt tagastatavate ridade.

See on väga lihtne asi tegeleda.  Minu puhul (ja ma usun, et enamasti), Vaikimisi ülejäänud nõuab SharePoint (ja võib-olla kui tööstusharu standardile?) edasi-tagasi 100 ridu.  Tagasi rohkem kui vaikimisi, Kasutage parameetrit $top teie kõne, nagu ka:

SAAD /Insights Dev/_api/web/lists/GetByTitle('MockBlog')/üksused?$Valige = ID,Pealkiri,Kategooria/pealkiri,Blog_x0020_Author/pealkiri,DatePublished,BlogSummary&$laiendamine = Blog_x0020_Author,Kategooriad&$filtri =&$Top = 9999

Ma valisin 9999 Sel juhul kuna ma tean et growth-wise, seal ei ole enam kui 200 või nii ridade lisatakse sellesse loendisse aastas.  Kui see muutub ungainly, saame rakendada mõningaid kutsungi mööda teed.

</lõpp>

undefinedTelli minu blogi.

Järgi mind vidistama kell http://www.twitter.com/pagalvin

Vaene mees on Caching JavaScript

[TL;DR versioon: kasutame küpsiseid, et salvestada tulemused async kõned; muuta tulemused viimase async kõned kohe ja seejärel Kinnita neid pärast lehe laadimist.]

Olen töötanud SharePointi intranet saidil kliendile, et funktsioonid, muu hulgas, stiliseeritud teisese navigation kelle menüüsuvandite hallatakse kaudu regulaarselt vana kohandatud loendi.  Mõte on selles, et klient saab kontrollida "oma" saidi menüü mõjutamata või mõjutavad globaalset navigatsioonisatelliitide poolt välja pandud.

(seal on midagi uskumatult õõnestava lisamine CEWP, mis viitab HTML-fail, mis laadib mõned CSS ja JS oluliselt muuta peaaegu kõike saidi käitumine... kuid see on teisele ametikohale)

See päris lihtne kood:

Valus kohapeal siin on see, et iga kord, kui keegi lööb selle saidi leheküljed, See kasutaja veebilehitseja on jõudmas saada üksuste loendist.  Kui dev on lõpetatud ja testimine on osutunud asjad olema stabiilne ja täielik, selle kutse ei ole vajalik enam kui 99% ajast alates menüü harva muutub.  On ka imelik UI mõjutada, mis on levinud see vapper uus maailm hüper-ajaxy veebisaitide-lehe renderdamist ja alles seejärel menüü Muuda.  On närviline ja häiriv, minu arvates.  Ja närviline. Nii, vahemällu. 

Ma muutmine loogika thusly:

  • Otsige küpsise brauseri, mis sisaldab menüüd kui viimati lugesin
    • Kui leiti, Muuda kohe.  Ärge oodake lõpuni laadimise lehele.  (Sa pead veenduge, et teie HTML strateegiliselt paigutatud siin, kuid see ei ole raske teha).
  • Oodake, kuni lehe lõpuni peale ja tee async helistada korralikuks menüü üksuste loendi, kasutades ülejäänud või lists.asmx või mis iganes
  • Võrdle, mida sain vastu küpsis
    • Kui see sobib, Stopp
    • Muidu, kasutades jQuery, dünaamiliselt asustada hunnik kui <Li>'s in a <UL>
  • Kasutage kogu vormingu CSS
  • Kasum!

Mõned teist lähevad öelda, "kuule! ei mingit tõelist vahemällu siin toimub kuna sa loed menüü niikuinii iga kord.”  Ja sul on õigus-ma olen andes server murda tahes.  Kuid kuna kõne on asünkroonne ja juhtub pärast esialgse ettepaneku lehe HTML lasti täielikult muudab, "tundub" kiiremini reageerima kasutaja.  Menüü muudab päris palju kui lehe viiki.  Kui menüü muutus, Kasutaja läbib närviline uuesti teha menüü, kuid ainult üks kord.

Seal on mõned viisid, et muuta see vahemälu tõhusamaks ning aidata server samal ajal:

  • Pane vähemalt kehtiva "küpsiste vahemälu" reeglit 24 tunni või mõni muu ajakava. Kui ei ole aegunud küpsis, Kasutage seda küpsist menüüd pildistamise ja kunagi tabanud server.

Noh... see on kõik, mis kohe pähe tulevad :). 

Kui kellelgi on kõik targad ideed siin oleks tore teada nende.

Ja lõpuks – seda tehnikat kasutada muid asju.  Selle kliendi leheküljel on mitmeid asju andmepõhiseid erinevatel lehekülgedel, Paljud neist muutuvad suhteliselt harva (näiteks kord nädalas või kord kuus).  Kui sihite teatud valdkondades funktsioone, annad paindlikumaks UI tõmmates sisu kohalikku küpsis salvestada ja muuta kohe.  Ta tunneb kiiremini kasutajale, isegi kui sa oled kokkuhoid, server kõik tsüklit.  Te Saate salvestada serveri tsüklit otsustades mõned tingimused ja vallandab tunnistab kehtetuks kohalik küpsiste vahemälu.  Ongi kõik olukorrast ja esteetilist asjad ja tõesti kõige toredam :). 

</lõpp>

undefinedTelli minu blogi.

Järgi mind vidistama kell http://www.twitter.com/pagalvin