Tag Archives: JavaScript

Швидкий і простий: Створення сайту SharePoint за допомогою відпочинку

Є багато ресурсів навколо цього шоу, як це зробити, але я не міг знайти всеосяжний йти до посилання, так ми тут.

Ви можете створити сайт SharePoint за допомогою REST API.  Ось приклад повністю печена:

<!--
    SiteRequestForm.html: Збирати інформацію і створити сайт для користувача.
-->

<Центр>
<Таблиця>
    <TR>
        <TD>Ім'я сайту:</TD>
        <TD><Вхід тип= "текст" Ім’я= "Ім'я сайту" ID= "Ім'я сайту" /></TD>
    </TR>
    <TR>
        <TD ColSpan= "2">
            <Вхід тип= "надсилання" ID= "CreateSiteButton" значення= "Створити сайт" />
        </TD>
    </TR>
</Таблиця>
</Центр>

<сценарій НДЦ="../Plugins/Jquery-1.11.0.min.js"></сценарій>

<сценарій>
VAR CreateSiteLogicContainer = {

    createSiteData: {
            "Параметри": {
                __metadata: { "тип": "SP.WebInfoCreationInformation" },
                URL-адреса: "Paultest1",
                Назва: "Paultest1",
                Опис: "створив залишок веб-Пол!",
                Мова: 1033,
                WebTemplate: "СТС",
                UseUniquePermissions: ХИБНІСТЬ
            }
    },

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

        jQuery.support.cors = Істина;

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

            заголовки: {
                «Прийняти": "застосування/json; odata = verbose",
                "content-type": "застосування/json;odata = verbose",
                «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;DR версії: використовує кукі для зберігання результатів async дзвінків; візуалізації результатів останніх async дзвінків негайно а потім підтвердити їх після завантаження сторінки.]

Я працюю на intranet-сайті SharePoint для клієнта цієї функції, серед іншого, стилізований другорядного меню, чиї параметри меню керування через регулярні старі настроюваним списком.  Ідея полягає в тому, що клієнт одержує управління меню "своїх" сайт без зачіпають або під впливом глобальної навігації, згасити його.

(Існує щось неймовірно підривних про додавання CEWP, що вказує на файл HTML, який завантажує деякі CSS і JS докорінно змінити характер майже все про поведінку сайту..., але це на іншій посаді)

Код для цього дуже проста:

  • Чекати сторінку для завантаження і зробити async, зателефонуйте завантажувати до пунктів меню зі списку за допомогою відпочинку або lists.asmx або будь-який інший
  • Використання jQuery, динамічно заповнення букет, якщо <Лі>у всередині батьків <ul> (у Піндер християнський статті тут спрощене пояснення цього tecnnique)
  • Робити все форматування за допомогою CSS
  • Прибуток!

Хворе місце тут в тому, що кожного разу, коли хтось потрапляє одним із сторінки сайту, Цей користувач веб-браузер простягає руку отримати елементи зі списку.  Після того, як dev є повним і тестування довела речей, щоб бути стабільною і повний, цей заклик не є необхідним більше, ніж 99% часу, оскільки у меню рідко змінюється.  До нього дивні афекту користувальницький інтерфейс, який є спільним в цьому прекрасному новому світі гіпер ajaxy веб-сайтів-сторінка надає, і тільки потім меню візуалізації.  Це нервовий і відволікає, на мій погляд.  І нервовий. Так, кешування. 

Я змінив логіка константи виглядає:

  • Знайдіть файл cookie у веб-переглядачі, що містить меню, як я останній раз читав його
    • Якщо знайдено, зробити його негайно.  Чи не чекайте, сторінки завантаження.  (Ви повинні переконатися, що ваш HTML стратегічно розташованих тут, але це не важко зробити).
  • Чекати сторінку для завантаження і зробити async, зателефонуйте завантажувати до пунктів меню зі списку за допомогою відпочинку або lists.asmx або будь-який інший
  • Порівняти те, що я отримав від печива
    • Якщо він відповідає, Зупинити
    • В іншому випадку, використання jQuery, динамічно заповнення букет, якщо <Лі>в у в <ul>
  • Робити все форматування за допомогою CSS
  • Прибуток!

Деякі з ви збираєтеся сказати, "Ей! немає не реальних кешування тут відбувається так, як ви читаєте меню все одно кожен раз, коли.”  І ви маєте рацію-я не даю сервер будь-якого роду перерву.  Але тому що дзвінок async і відбувається після того, як сторінку від початкового Деструктивна HTML повністю надає, вона відчуває "себе" більш гнучкою для користувача.  Меню надає досить стільки, скільки сторінку малює.  Якщо меню відбувається до зміни, користувач піддається нервовий повторно перемальовувати меню, але що один раз.

Є кілька шляхів, щоб зробити цей кешування більш ефективним і допомогти на сервері в той же час:

  • Покласти в правило "куки кеш" дійсна протягом мінімум 24 годин або деякі інші терміни. Оскільки немає жоден файл cookie не прострочений, за допомогою файлу cookie, меню знімок і ніколи не потрапляють на сервері.

Добре..., що все, що спадає на думку прямо зараз :). 

Якщо хто має будь-які розумні ідеї тут я б із задоволенням їх знаємо.

І нарешті-ця техніка може бути використана для інших речей.  Цей клієнт сторінка має ряд динамічної речей на різних сторінках, багато хто з них відносно рідко змінюється (як раз на тиждень або раз на місяць).  Якщо ви націлюєте конкретних областях функціональності, можна надати більш гнучкою для користувача Інтерфейсу, потягнувши змісту з магазину місцевих печива й наданням негайно.  Вона відчуває себе швидше користувачеві навіть, якщо ви не записуєте сервер будь-якої циклів.  Ви можна зберегти сервер циклів, ухвалення рішення про деякі умовах і тригерів спростовувати кеш локальних файлів cookie.  Це все ситуаційні і претензійною речі і дійсно найвеселіше :). 

</кінець>

undefinedПідписатися на мій блог.

Йди за мною на Twitter в http://www.twitter.com/pagalvin