Címkearchívumok: JavaScript

Gyors és egyszerű: A többi SharePoint-webhely létrehozása

Vannak sok erőforrást, ezen a környéken: azt mutatják, hogyan kell ezt csinálni, de én nem tudott talál egy átfogó go-to link, Tehát itt vagyunk.

A REST API-t használó SharePoint-webhely létrehozása  Itt van egy teljes mértékben sült példa:

<!--
    SiteRequestForm.html: Információkat gyűjt, és létrehoz egy webhelyet, a felhasználó számára.
-->

<központ>
<táblázat>
    <TR>
        <TF>Hely neve:</TF>
        <TF><bemenet típus= "szöveg" név"SiteName =" azonosító"SiteName =" /></TF>
    </TR>
    <TR>
        <TF colspan"2 =">
            <bemenet típus= "submit" azonosító= "CreateSiteButton" érték= "A webhely létrehozása" />
        </TF>
    </TR>
</táblázat>
</központ>

<parancsfájl src="../Plugins/jQuery-1.11.0.min.js"></parancsfájl>

<parancsfájl>
var CreateSiteLogicContainer = {

    createSiteData: {
            "paraméterek": {
                __metadata: { "típus": "SP.WebInfoCreationInformation" },
                URL-címe: "Paultest1",
                Cím: "Paultest1",
                Leírás: "többi létrehozott web Paul!",
                Nyelv: 1033,
                A rendszer: "sts",
                UseUniquePermissions: hamis
            }
    },

    createSite: függvény () {

        jQuery.support.cors = igaz;

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

            fejlécek: {
                "fogadd el": "application/json; OData = verbose",
                "content-type": "application/json;OData = verbose",
                "X-RequestDigest": $("#__REQUESTDIGEST").val()
            },

            adatok: JSON.stringify(CreateSiteLogicContainer.createSiteData),

            siker: függvény () { Figyelmeztetés("a siker"); },
            hiba: függvény () { Figyelmeztetés("hiba"); }

        });
    },

    wireUpForm: függvény () {
        $("#CreateSiteButton").kattintson a(függvény () {
            Figyelmeztetés("Arról, hogy próbálja meg, és a webhely létrehozása.");
            CreateSiteLogicContainer.createSite();
        });
    }


}

CreateSiteLogicContainer.wireUpForm();

</parancsfájl>

Amikor a sikeres, kapsz egy JSON csomag válasz, mint ez:

image

A fő gondolatok és tanulságait az erre:

  • Ez a megközelítés használja jQuery.  Az én esetemben, a jQuery könyvtár található ".../ plugins. "  Akkor szeretnénk változtatni, hogy a kedvenc JQ helyre.
  • Másolja, és illessze be a teljes kódrészletet a Tartalomszerkesztő kijelző egy oldalon, és ez kellet volna dolgozik csak finom.  Akkor szeretnénk változtatni API-hívás végpontja, és ellenőrizze, hogy helyesen hivatkozott JQ.
  • A URL van képest a API végpont.  Az én esetemben, -a ' teremtő alwebhely alatt https://bigapplesharepoint.com
  • Nem kell, hogy egy content-length. Néhány blogbejegyzések és MSDN dokumentum azt jelenti, hogy nem, de történt számomra automatikusan, amely feltételezem, hogy kezeli a $.ajax hívás, maga.
  • Ez vonal van szükség annak érdekében, hogy elkerüljék a "tiltott" válasz: "X-RequestDigest": $("#__REQUESTDIGEST").val().  Vannak más módjai, de ez nagyon szép.  Nekem van elveszett a link a blog, hogy ezt a parancsikont.  H/T neked, titokzatos blogger!

Sok szerencsét, és remélem, ez segít valaki.

</vége>

undefinedSubscribe to my blog.

Kövesse nekem Twitter http://www.twitter.com/pagalvin

Gyors és egyszerű: SharePoint többi hívja csak visszatér 100 Rekordok

Már dolgozik a szemben lévő nyilvános webhely SharePoint gyakorlat itt a New York-i és ez használ egy csomó JavaScript és a többi felkéri a tartalom megjelenítése.

Fővonal fejlesztés során, Hozzon létre egy kis adathalmaz csak 10 vagy olyan sorokat egy egyéni listát és a többi hívások húzta ott.  Egyszer futottam a lista, hogy néhány száz adatsorok kipróbálni, a várható növekedés, Azt tapasztaltam, hogy volt szerzés pontosan 100 vissza a többi kéri a visszaadott sorok.

Ez egy nagyon egyszerű dolog, hogy foglalkozzon.  Az én esetemben (és azt hiszem, a legtöbb esetben), az alapértelmezett többi felhívja a SharePoint (és valószínűleg iparági szabvány?) vissza 100 sorok.  Vissza több, mint az alapértelmezett, használja az $top paramétert a hívás, mint a:

KAP a /Insights Dev/_api/web/lists/GetByTitle("MockBlog")/elemek?$Válasszon = azonosító,Cím,Kategóriák/cím,Cím/Blog_x0020_Author,DatePublished,BlogSummary&$Bontsa ki a = Blog_x0020_Author,Kategóriák&$Filter =&$Top = 9999

Felvettem a 9999 Ebben az esetben mivel tudom, hogy growth-wise, nem lesz több, mint 200 vagy olyan sort a listához hozzáadott egy évben.  Ha ez lesz idomtalan, Mi, végre bizonyos mértékű lapozás lefelé az úton.

</vége>

undefinedSubscribe to my blog.

Kövesse nekem Twitter http://www.twitter.com/pagalvin

Szegény ember meg gyorsítótár-JavaScript

[TL;DR változat: aszinkron hívások eredményének tárolására cookie-k segítségével; Render korábbi aszinkron hívás eredményét azonnal, és akkor ellenőrzi őket után az oldal teher.]

Már dolgozik a SharePoint intranetes hely egy ügyfél amit jellegét meghatározza, egyebek, stilizált másodlagos navigációs, amelynek menüpontok kezelt keresztül rendszeres régi egyéni listát.  Az ötlet az, hogy az ügyfél kap, hogy "saját" webhely menü nem érintő, vagy befolyásolják a globális navigációs tesz ki.

(van valami hihetetlenül felforgató, egy CEWP, amit váltó-hoz egy HTML-fájlt, amely betölti néhány CSS és JS, hogy alapjaiban változtatja meg egy webhely viselkedése... szinte mindent, de ez egy másik post hozzáadásával kapcsolatban)

A kód részére ez szép egyszerű:

  • Várni a lap betöltése befejezni, és csinál egy hív-hoz teher megjelöl menüpontok segítségével a többi vagy lists.asmx, vagy bármi listájából aszinkron
  • Segítségével jQuery, dinamikusan feltöltése egy csomó, ha <Li>belül a szülő meg <UL> (Lásd Christian Pinder itt ez tecnnique egyszerű magyarázata)
  • Tenni, a formázás CSS segítségével
  • Profit!

A herpesz spot itt az, hogy minden alkalommal, amikor valaki eléri az egyik a telek oldalak, hogy a felhasználó webböngésző elérése, kap elemek a listában.  Egyszer befejeződött a dev és vizsgálat bizonyította a dolgokat, hogy stabil, és teljes, ezt a felhívást a felesleges több mint 99% az idő, mivel az étlap csak ritkán változik.  Ez is birtokol egy furcsa UI hatással, ami gyakran a szép új világban hyper ajaxy webhelyek – az oldal, és csak akkor nem jeleníti meg a menüben.  Az ideges és zavaró az én véleményem.  És ideges. Így, cache-t. 

Módosítottam a logika imigyen:

  • Keres egy süti a böngésző, hogy utoljára olvasni, ez a menü tartalmazza
    • Ha talált, hogy azonnal tegyék.  Ne várjon az oldal betöltésekor.  (Sírnod kell győződj meg a HTML stratégiailag elhelyezett itt, de ez nem nehéz megtenni).
  • Várni a lap betöltése befejezni, és csinál egy hív-hoz teher megjelöl menüpontok segítségével a többi vagy lists.asmx, vagy bármi listájából aszinkron
  • Hasonlítsa össze, mit kapott, szemben a cookie-k
    • Ha ez megegyezik, állj
    • Egyébként, segítségével jQuery, dinamikusan feltöltése egy csomó, ha <Li>meg az a <UL>
  • Tenni, a formázás CSS segítségével
  • Profit!

Néhányan azt fogják mondani, "Hé! van nem igazi cache folyik itt óta olvasod a menü egyébként minden egyes alkalommal.”  És igazad van,-nem adom, a szerver bármilyen típusú szünet.  De azért, mert a hívás aszinkron és történik után az oldal kezdeti HTML tartalom teljesen viszonoz, "érzés" jobban reagál, hogy a felhasználó.  A menü szép teszi, mint az oldal felhívja.  Ha a menüben az történik, hogy a változás, a felhasználó van kitéve egy ideges újra felhívni a menü, de csak ekkor, egy alkalommal.

Vannak néhány ways-hoz ez gyorsítótárazás hatékonyabbá tenni és segíteni a kiszolgáló egy időben:

  • Betesz egy szabály, hogy a "cookie-cache" érvényes minimum 24 órán vagy néhány más időkeret. Mindaddig, amíg van nem lejárt süti, használja a cookie-k menü pillanatképet, és soha nem hit a szerver.

Hát... ennyi jutott eszembe most :). 

Ha akárki birtokol akármi okos ötleteket itt szeretném tudni, hogy őket.

És végül – ezt a technikát lehet használni más dolgok.  Ez az ügyfél oldal számos adat-vezérelt dolog a különböző oldalak, Sokan közülük viszonylag ritkán változó (mint hetente vagy havonta egyszer).  Ha adott területen a funkcionalitás cél, egy rugalmasabb felhasználói Felületet ad húzza a tartalmat a helyi cookie boltból, visszaadás azonnal.  Érzés gyorsabb, hogy a felhasználó még akkor is, ha nem menti a kiszolgálón bármely ciklusok.  Ön lehet mentse a server ciklusok azzal a bizonyos feltételek és kiváltó, hogy érvényteleníti a helyi cookie-cache.  Ez minden szituációs és artsy cucc, és tényleg a legnagyobb élmény :). 

</vége>

undefinedSubscribe to my blog.

Kövesse nekem Twitter http://www.twitter.com/pagalvin