Tag Archives: JavaScript

Rýchle a jednoduché: Vytvoriť lokalitu SharePoint pomocou prenosov REST

Existuje veľa zdrojov v okolí ukazujú, že ako na to, ale nemohol som nájsť komplexné go-na odkaz, tak sme tu.

Môžete vytvoriť lokalitu SharePoint pomocou rozhrania REST API.  Tu je úplne upečené príklad:

<!--
    SiteRequestForm.html: Zhromažďovať informácie a vytvoriť stránky pre používateľa.
-->

<centrum>
<Tabuľka>
    <TR>
        <TD>Názov lokality:</TD>
        <TD><vstup typ= "text" meno= "SiteName" Identifikácia= "SiteName" /></TD>
    </TR>
    <TR>
        <TD ColSpan= "2">
            <vstup typ= "Odoslať" Identifikácia= "CreateSiteButton" hodnota= "Vytvoriť stránky" />
        </TD>
    </TR>
</Tabuľka>
</centrum>

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

<skript>
var CreateSiteLogicContainer = {

    createSiteData: {
            "parametre": {
                __metadata: { "typ": "SP.WebInfoCreationInformation" },
                URL: "Paultest1",
                Hlava: "Paultest1",
                Popis: "zvyšok-vytvoril web Paul!",
                Jazyk: 1033,
                WebTemplate: "sts",
                UseUniquePermissions: FALSE
            }
    },

    createSite: Funkcia () {

        jQuery.support.cors = pravda;

        CreateSiteLogicContainer.createSiteData.parameters.Url = $("#SiteName").Val();
        
        $.AJAX({
            adresa URL: "https://bigapplesharepoint.sharepoint.com/NBAIADev/_api/web/webinfos/add",
            metóda: "PRÍSPEVOK",

            hlavičky: {
                "Prijať": "aplikácie/json; Odata = podrobného",
                "content-type": "aplikácie/json;Odata = podrobného",
                "X-RequestDigest": $("#__REQUESTDIGEST").Val()
            },

            údaje: JSON.stringify(CreateSiteLogicContainer.createSiteData),

            úspech: Funkcia () { Upozornenie("úspech"); },
            chyba: Funkcia () { Upozornenie("chyba"); }

        });
    },

    wireUpForm: Funkcia () {
        $("#CreateSiteButton").kliknite na tlačidlo(Funkcia () {
            Upozornenie("Asi aby sa pokúsila vytvoriť lokalitu.");
            CreateSiteLogicContainer.createSite();
        });
    }


}

CreateSiteLogicContainer.wireUpForm();

</skript>

Keď úspešný, získate balíčka JSON reakciu takého:

image

Moje kľúčové myšlienky a poznatky z tejto zahŕňajú:

  • Tento prístup využíva jQuery.  V mojom prípade, knižnice jQuery sa nachádza v ".../ plugins. "  Budete chcieť zmeniť bod na vaše obľúbené miesto JQ.
  • Môžete skopírovať a vložiť tento celý útržok do webovej časti Editor obsahu na stránku a to by malo fungovať v pohode.  Budete chcieť zmeniť koncový bod API volania a overte, či odkazujete JQ správne.
  • URL je vzhľadom na svoje API koncový bod.  V mojom prípade, to je vytvoriť sub-stránky pod https://bigapplesharepoint.com
  • Nemusíte sa poskytnúť obsah-dĺžka. Niektoré príspevky blogu a MSDN dokument predpokladá, že si, ale stalo mi automaticky, čo predpokladám je spracovávaná na samotnú výzvu .ajax $.
  • Tento riadok je potrebné vyhnúť sa "zakázané" odpoveď: "X-RequestDigest": $("#__REQUESTDIGEST").Val().  Existujú iné spôsoby, ako to urobiť, ale to je celkom pekné.  Stratil som odkaz na blog, ktorý poskytuje túto skratku.  H/T na vás, tajomný blogger!

Veľa šťastia a dúfam, že to pomôže niekto.

</koniec>

undefinedVyberajte môj blog.

Nasledujte ma na stebėtų na http://www.twitter.com/pagalvin

Rýchle a jednoduché: SharePoint ZVYŠOK volať len vracia 100 Záznamy

Bol som pracoval na verejných čelia webové stránky pre môj SharePoint ambulancií tu New York a to používa veľa hovorov JavaScript a ZVYŠOK Zobraziť obsah.

Počas hlavnej rozvojovej, Vytvoriť malé dataset s len 10 alebo tak riadky vlastného zoznamu a my ZVYŠOK vyzýva všetky vytiahol odtiaľ.  Raz som narazil do zoznamu majú niekoľko sto riadkov údajov na test na očakávaný rast, Zistil som, že som dostala presne 100 riadkov vrátených späť na môj odpočinok hovory.

To je veľmi jednoduchá vec riešiť.  V mojom prípade (a verím, že vo väčšine prípadov), predvolené ZVYŠOK vyzýva na lokalitu SharePoint (a možno aj ako priemyselný štandard?) return 100 riadky.  Vrátiť viac ako predvolené, Použite $top parameter na vašu výzvu, rovnako ako v:

Získajte /Insights Dev/_api/web/lists/GetByTitle("MockBlog")/položky?$vyberte = ID,Hlava,Kategórie/titul,Blog_x0020_Author titul,DatePublished,BlogSummary&$rozšírenie = Blog_x0020_Author,Kategórie&$Filter =&$hore = 9999

Som si vybral 9999 v tomto prípade odvtedy viem, že growth-wise, tam nebude viac ako 200 alebo tak riadky pridané do tohto zoznamu v roku.  Ak sa stane nemotorný, môžeme realizovať niektoré stránkovanie na ceste.

</koniec>

undefinedVyberajte môj blog.

Nasledujte ma na stebėtų na http://www.twitter.com/pagalvin

Chudák je cache v JavaScriptu

[TL;DR verziu: používanie cookies k ukladaniu výsledky asynchrónne volania; vykreslenie Výsledky posledných asynchrónne volania okamžite a potom overiť po načítaní stránky.]

Bol som pracoval na intranetovej lokalite SharePoint pre klienta, že funkcie, okrem iného, štylizované druhej navigácii ktorého menu voľby sú riadené prostredníctvom pravidelnej starými vlastného zoznamu.  Myšlienka je, že klient dostane kontrolovať "ich" stránky menu bez ovplyvnenia alebo byť zasiahnuté globálnej navigácie vyháňaní to.

(tam je niečo neuveriteľne podvratné pridávanie CEWP, ktorý odkazuje na súbor HTML, ktorý načíta niektoré CSS a JS zásadne zmeniť takmer všetko o webe správanie... ale to je iný post)

Kód pre tento veľmi jednoduchý:

Boľavé miesto tu je, že zakaždým, keď niekto udrie jedným zo stránky, používateľa webového prehliadača je osloviť načítať položky zo zoznamu.  Po dokončení sa dev a testovanie ukázalo veci byť stabilnejší a kompletné, Táto výzva je zbytočné viac ako 99% doby, kedy v ponuke zriedka to zmení.  Má tiež podivné UI ovplyvniť, čo je bežné v tomto odvážnom novom svete hyper-AJAX webových stránok – stránky omietky a až potom v ponuke vykresliť.  Je nervózna a rušivé podľa môjho názoru.  A nervózny. Takže, ukladanie do vyrovnávacej pamäte. 

Som upravil logika thusly:

  • Pohľad na cookie v prehliadači, ktorý obsahuje ponuku ako som naposledy čítal
    • Ak sa našiel, robí to okamžite.  Nemusíte čakať na dokončenie načítania stránky.  (Budete musieť uistite sa, že HTML je strategicky umiestnené tu., ale to nie je ťažké urobiť).
  • Čakať na stránku až do konca nakládky a asynchrónne volanie naložiť menu položky zoznamu pomocou odpočinku alebo lists.asmx alebo čokoľvek, aby
  • Porovnajte čo mám proti cookie
    • Ak sa to zhoduje, zastaviť
    • Inak, pomocou jQuery, dynamicky naplniť veľa Ak <li>je v <ul>
  • Použitie CSS robiť všetko formátovanie
  • Zisk!

Niektoré z vás chcel povedať, "Hej! Neexistuje žiadny skutočný caching deje pretože čítate menu rovnako každý jednotlivý čas.”  A máš pravdu-nejsem dáva server akýkoľvek druh prestávku.  Ale pretože hovor je asynchrónna a stane po stránke počiatočné zaťaženie HTML plne omietky, "Pripadá mi to" lepšie reagovať na užívateľa.  V ponuke omietky docela ako stránku čerpá.  Ak v ponuke dôjde k zmene, používateľ sa podrobí nervózny znovu čerpať z menu, ale iba tento raz.

Existuje niekoľko spôsobov na zefektívnenie tejto cache a pomoct server v rovnakom čase:

  • Zaviesť pravidlo, že "cookie cache" je platný pre minimálne 24 hodín, alebo nejaký iný Časový. Pokiaľ neexistuje žiadna cookie vypršala, použitie cookie ponuky snímka a nikdy hit server.

No... to je všetko, čo príde na myseľ hneď :). 

Ak má niekto nejaké chytré nápady tu by chcel poznať.

A napokon – Táto technika môže byť použitá pre iné veci.  Tento klient strana má mnoho vecí, data-riadený na rôznych stránkach, Mnohé z nich mení pomerne zriedka (ako raz týždenne alebo raz za mesiac).  Ak cielite špecifické oblasti funkčnosti, si môžete dať citlivejšie UI ťahom obsah z miestnej cookie obchodu a vykresľovanie okamžite.  Pripadá mi to rýchlejšie pre užívateľa aj ak nie ukladáte server bez cyklov.  Ste môžete uložiť na server cykly pri rozhodovaní o niektorých podmienkach a spúšťa zruší tento miestnej cookie cache.  To je všetky situačná a diletantský veci a naozaj najviac zábavy :). 

</koniec>

undefinedVyberajte môj blog.

Nasledujte ma na stebėtų na http://www.twitter.com/pagalvin