Тег Архивы: JavaScript

Быстро и легко: Создайте сайт SharePoint с помощью отдыха

Есть много ресурсов вокруг этого шоу, как это сделать, но я не мог найти ссылку перейти к комплексной, так что мы здесь.

Можно создать узел SharePoint, с помощью API-интерфейса REST.  Вот пример, полностью запеченные:

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

<центр>
<Таблица>
    <TR>
        <ТД>Название сайта:</ТД>
        <ТД><вход Тип= "текст" имя= "Имя_сайта" ID= "Имя_сайта" /></ТД>
    </TR>
    <TR>
        <ТД ColSpan= "2">
            <вход Тип= "отправить" ID= «CreateSiteButton" значение= "Создать сайт" />
        </ТД>
    </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",
            метод: «ПОСТ",

            заголовки: {
                «Принимаю": «application/json; OData = подробный",
                «content-type": «application/json;OData = подробный",
                «X-RequestDigest": $(«#__REQUESTDIGEST").вал()
            },

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

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

        });
    },

    wireUpForm: функция () {
        $(» #CreateSiteButton").Нажмите кнопку(функция () {
            предупреждение(«О, чтобы попробовать и создать сайт.");
            CreateSiteLogicContainer.createSite();
        });
    }


}

CreateSiteLogicContainer.wireUpForm();

</сценарий>

При успешном выполнении, Вы получаете пакет JSON в ответ, как это:

image

Мои ключевые мысли и знания из этого включают в себя:

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

Удачи и надеюсь что это помогает кто-то.

</конец>

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

Следуй за мной по щебетать на http://www.twitter.com/pagalvin

Быстрый и простой: Возвращает только вызов REST SharePoint 100 Записи

Я работаю на общественных облицовочная веб-сайт для моей практике SharePoint в Нью-Йорк и он использует много вызовов JavaScript и отдыха для отображения содержимого.

Во время развития магистральных, Я просто создаю небольшого набора данных с 10 или так строк в пользовательский список и мои остальные звонки вытащил оттуда.  Однажды я bumped вверх по списку, чтобы иметь несколько сотен строк данных для проверки ожидаемого роста, Я обнаружил, что я получаю именно 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Подписаться на мой блог.

Следуй за мной по щебетать на http://www.twitter.com/pagalvin

Бедный человек при кэшировании в JavaScript

[TL;Д-р версии: Используйте cookies для хранения результатов асинхронных вызовов; немедленно отображать результаты последних асинхронных вызовов, а затем проверить их после загрузки страницы.]

Я работаю на сайте интрасети SharePoint для клиента, что особенности, среди прочего, стилизованные вторичных навигации, чьи параметры меню управляются через регулярные старый пользовательский список.  Идея заключается в том, что клиент получает для управления меню «их» сайта не затрагивая или под воздействием глобальной навигации, потушить его.

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

Код для этой довольно простой:

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

Больное место здесь является то, что каждый раз, когда кто-нибудь хитов одной из страниц сайта, веб-браузер пользователя выходит для получения элементов из списка.  После того, как dev, является полной и тестирования доказал вещи, чтобы быть стабильной и полной, Этот вызов не требуется более чем 99% времени, так как меню редко меняется.  Она также имеет странно влияют на пользовательский интерфейс, который является общим в этом дивном новом мире гипер ajaxy веб-сайтов – страница отображает и только тогда меню визуализации.  Это нервный и отвлекает на мой взгляд.  И нервный. Таким образом, кэширование. 

Я изменил логику константы выглядит так:

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

Некоторые из вас собираетесь сказать, «Эй! Существует без реальных кэширования происходит здесь, так как вы читаете меню все равно Каждый раз.”  И вы правы-я не давая сервера любого вида отдыха.  Но поскольку вызов асинхронного и происходит после начальной страницы HTML полезной нагрузки полностью оказывает, Он «чувствует» более чутко для пользователя.  Меню предоставляет довольно много, как рисует страницы.  Если меню происходит с изменением, пользователь подвергается нервным повторно нарисуйте меню, но только что один раз.

Есть несколько способов сделать это кэширование более эффективной и в то же время помочь сервера:

  • В правиле, что «кэш cookie» действительна как минимум в 24 часов или некоторые другие сроки. Пока не истек файл cookie, Используйте снимок меню файла cookie и никогда не ударил сервера.

Ну..., вот и все, что приходит на ум прямо сейчас :). 

Если кто имеет какие-либо умные идеи здесь я бы хотел знать их.

И наконец – этот метод может использоваться для других вещей.  Этот клиент страница имеет ряд вещей с данными на различных страницах, Многие из них меняется относительно редко (как раз в неделю или раз в месяц).  Если вы имеете конкретные области функциональности, Вы можете дать более реагировать пользовательского интерфейса, потянув содержимое из хранилища локального файла cookie и рендеринга немедленно.  Он чувствует быстрее для пользователя, даже если вы не сохраняете сервере никаких циклов.  Вы можно Сохраните циклы сервера недействительным кэш локального файла cookie, решив на некоторых условий и триггеры.  Это все ситуационных и вычурные вещи и действительно самое веселое :). 

</конец>

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

Следуй за мной по щебетать на http://www.twitter.com/pagalvin