Tag Archives: JavaScript

Бърз и лесен: Създаване на сайт на SharePoint с помощта на почивка

Има много ресурси около които показват как да направите това, но не мога да намеря изчерпателно за излизане на връзка, така че тук сме.

Можете да създадете сайт на SharePoint с помощта на ОСТАНАЛИТЕ API.  Тук е напълно печени пример:

<!--
    SiteRequestForm.html: Събиране на информация и създаване на сайт за потребителя.
-->

<център>
<таблица>
    <TR>
        <TD>Име на сайт:</TD>
        <TD><вход тип= "текст" Име= "Име на сайт" ИД= "Име на сайт" /></TD>
    </TR>
    <TR>
        <TD colspan= "2">
            <вход тип= "представя" ИД= "CreateSiteButton" стойност= "Създаване на сайт" />
        </TD>
    </TR>
</таблица>
</център>

<скрипт SRC="../Plugins/JQuery-1.11.0.min.js"></скрипт>

<скрипт>
var CreateSiteLogicContainer = {

    createSiteData: {
            "параметри": {
                __metadata: { "тип": "SP.WebInfoCreationInformation" },
                URL адрес: "Paultest1",
                Заглавие: "Paultest1",
                Описание: "почивка създаден уеб от Пол!",
                Език: 1033,
                WebTemplate: "sts",
                UseUniquePermissions: фалшиви
            }
    },

    createSite: функция () {

        jQuery.support.cors = вярно;

        CreateSiteLogicContainer.createSiteData.parameters.Url = $("#SiteName").вал();
        
        $.Аякс({
            URL адрес: "https://bigapplesharepoint.sharepoint.com/NBAIADev/_api/web/webinfos/add",
            метод: "ПОСТ",

            заглавки: {
                "приемете": "приложение/json; oData = многословно",
                "тип съдържание": "приложение/json;oData = многословно",
                "X-RequestDigest": $("#__REQUESTDIGEST").вал()
            },

            данни: JSON.stringify(CreateSiteLogicContainer.createSiteData),

            успех: функция () { предупреждение("успех"); },
            грешка: функция () { предупреждение("грешка"); }

        });
    },

    wireUpForm: функция () {
        $("#CreateSiteButton").щракнете върху(функция () {
            предупреждение("За да се опита и да се създаде сайт.");
            CreateSiteLogicContainer.createSite();
        });
    }


}

CreateSiteLogicContainer.wireUpForm();

</скрипт>

Когато успешно, получавате JSON пакет в отговор като този:

image

Моите основни мисли и learnings и от това са:

  • Този подход използва jQuery.  В моя случай, Моят jQuery библиотеката се намира в ".../ плъгини. "  Вие ще искате да промените това да сочи към вашия любим JQ местоположение.
  • Можете да копирате и поставите целия този фрагмент в уеб компонент за редактор на съдържание на страница и тя трябва да работи добре.  Вие ще искате да промените крайната точка на API повикване и се уверете, че можете да препращате JQ правилно.
  • URL Адресът е си API крайна точка.  В моя случай, Тя е създаване на подсайтове под https://bigapplesharepoint.com
  • Не е нужно да предоставят съдържание-дължина. Някои публикации в блога и MSDN документът предполага, че правите, но е станало за мен автоматично, което предполагам се обработват от самия разговор за .ajax $.
  • Този ред се изисква за да се избегне "забранени" отговор: "X-RequestDigest": $("#__REQUESTDIGEST").вал().  Има други начини да го направя, но това е доста хубаво.  Аз загубих връзката към блог, който предоставя този пряк път.  H/T за вас, мистериозен blogger!

Успех и се надявам това да помогне някого.

</край>

undefinedАбонирайте се за моя блог.

Следвайте ме на Twitter в http://www.twitter.com/pagalvin

Бърз и прост: SharePoint почивка наричат само връща 100 Записи

Аз съм бил на работа в публични пред уеб сайт за моята SharePoint практика тук в Ню Йорк и той използва много JavaScript и ОСТАНАЛИТЕ повиквания да покаже съдържанието.

По време на Хаусман развитие, Създам един малък набор от данни със само 10 или толкова редове в списък по избор и ми почивка призовава всички извади от там.  Веднъж аз ударих в списъка да има няколко стотин редове с данни да се тестват за очакваните растеж, Открих, че съм точно 100 редовете, върнати обратно на моята почивка обаждания.

Това е много просто нещо да адрес.  В моя случай (и аз вярвам в повечето случаи), по подразбиране почивка извиква в SharePoint (и вероятно като индустриален стандарт?) връщане 100 редове.  Да се върне повече от този по подразбиране, използвайте параметъра $top на вашето обаждане, както и в:

Вземи /Insights Dev/_api/web/lists/GetByTitle("MockBlog")/елементи?$Изберете = ID,Заглавие,Категории/заглавие,Blog_x0020_Author/заглавие,DatePublished,BlogSummary&$разширяване = Blog_x0020_Author,Категории&$филтър =&$Топ 9999

Вдигнах 9999 в този случай, тъй като знам, че growth-wise, няма да има повече от 200 или толкова редове се добавят към този списък в една година.  Ако тя стане неугледна, Ние може да реализира някои пейджинг надолу по пътя.

</край>

undefinedАбонирайте се за моя блог.

Следвайте ме на Twitter в http://www.twitter.com/pagalvin

Бедният човек на кеширане в JavaScript

[TL;Д-р версия: използва бисквитки за да съхранява резултатите от async повиквания; сравнимостта на резултатите от минали async повиквания веднага и след това ги утвърждава след зареждане на страницата.]

Съм бил на работа в интранет сайта на SharePoint за клиент, което функции, наред с други неща, стилизирана допълнителна навигация, чието меню опции се управляват чрез редовни стар списък по избор.  Идеята е, че клиентът получава за контрол на сайта "тяхната" меню без чувства или са засегнати от глобалната навигационна, изведен от нея.

(има нещо невероятно подривни за добавянето на CEWP, който сочи към HTML файл, който зарежда някои CSS и JS да променят фундаментално почти всичко за поведението на даден сайт..., но това е за друг пост)

Кодът за тази доста проста:

  • Изчакайте страницата да завърши зареждането и асинхронно повикване към товаря горе меню елементи от списък с помощта на почивка или lists.asmx или каквото и
  • Използване на jQuery, динамично пренесат китка, ако <Li>снимки на вътре родител <UL> (Вижте Кристиан Pinder статия тук за опростено обяснение на това tecnnique)
  • Използвайте CSS за цялото форматиране
  • Печалба!

Възпалено място тук е, че всеки път, когато някой удари един от страници на сайта, този потребител уеб браузър се достига до получите елементи от списъка.  След като dev е пълна и изпитване е доказано неща, за да бъде стабилна и пълна, тази покана е необходимо повече от 99% на времето, тъй като менюто рядко промени.  Тя също има странни UI влияние, което е често срещани в този смел нов свят на хипер-ajaxy уеб сайтове – страницата се рендира и само тогава прави менюто.  Той е нервен и разсейващи по мое мнение.  И нервност. Така, кеширане. 

Аз промяна логиката thusly:

  • Потърсете "бисквитка" в браузъра, която съдържа менюто, тъй като аз последно го прочетете
    • Ако намерени, направи го веднага.  Не чакайте за страницата, за да завърши зареждането.  (Трябва да се уверете, че HTML е стратегическо място тук, но това не е трудно да се направи).
  • Изчакайте страницата да завърши зареждането и асинхронно повикване към товаря горе меню елементи от списък с помощта на почивка или lists.asmx или каквото и
  • Сравнете това, което получих срещу бисквитката
    • Ако тя съвпада, Стоп
    • В противен случай, използване на jQuery, динамично пренесат китка, ако <Li>снимки на в <UL>
  • Използвайте CSS за цялото форматиране
  • Печалба!

Някои от вас ще кажат, "Ей! Няма реален кеширане връщане тук, тъй като вие сте четене на менюто все пак всеки път.”  И вие сте прав-не съм дава сървъра всякакъв вид на почивка.  Но тъй като повикването е готино и се случва след първоначалните констатации на страницата HTML payload напълно прави, Той се "чувства" по-отзивчиви към потребителя.  Менюто прави доста много, тъй като страницата равенства.  Ако менюто се случва с промяната, потребителят е подложен на нервност водих на менюто, но само че едно време.

Има няколко начина да направите това кеширане по-ефективно и да помогне на сървъра в същото време:

  • В едно правило, че кеша на"бисквитка" е валиден за най-малко 24 часове или някои други срокове. Както дълъг както там е не издишвам бисквит, Използвайте бисквитка меню снимка и никога не хит на сървъра.

Ами..., това е всичко, което дойде на ум в момента :). 

Ако някой има някакви умни идеи тук бих искал да ги знаят.

И на последно място-тази техника може да се използва за други неща.  Този клиент страница има няколко неща, данни задвижване на различни страници, много от тях промяна сравнително рядко (като веднъж седмично или веднъж месечно).  Ако насочвате конкретни области на функционалност, Можете да дадете по-отзивчиви потребителски интерфейс чрез издърпване на съдържанието от местните бисквитка се съхранява и оказване незабавно.  Той се чувства по-бързо за потребителя дори ако не записвате сървъра всички цикли.  Вие може да запишете на сървъра цикли от вземане на решение за някои условията и предпоставките да обезсили кеш тази местна бисквитка.  Това е всички ситуационни и artsy неща и наистина най-забавно :). 

</край>

undefinedАбонирайте се за моя блог.

Следвайте ме на Twitter в http://www.twitter.com/pagalvin