170 likes | 310 Views
JavaScript best practice in SharePoint 2010. Alexander Krupsky Senior SharePoint Developer. Содержание. Класс ScriptLink Загрузка скриптов по требованию OnDemand trick Скрипты для веб частей Переменная _ spPageContextInfo Использование jQuery Выводы. Класс ScriptLink.
E N D
JavaScript best practice in SharePoint 2010 • Alexander Krupsky • Senior SharePoint Developer
Содержание. • Класс ScriptLink • Загрузка скриптов по требованию • OnDemand trick • Скрипты для веб частей • Переменная _spPageContextInfo • Использование jQuery • Выводы
Класс ScriptLink. Класс ScriptLink предназначен для регистрации скриптов на странице. Почему не тэг Script? • Есть возможность выбора асинхронного/синхронного способа загрузки скрипта • Исключает двойную регистрацию • Требует наличие файла скрипта по указанной ссылке • Поддержка локализации и момента загрузки
Класс ScriptLink. Основные свойства данного класса: • Localizable • OnDemand • Name • LoadAfterUI
Класс ScriptLink. Localizable. Если свойство равно true, то поиск скрипта осуществляется в соответствующих для текущего языка папках /_layouts/1033 – английский /_layouts/1049 – русский
Класс ScriptLink. OnDemand. Отвечает за способ загрузки скрипта. • False- загружает скрипт на страницу • True- регистрирует скрипт для отложенной загрузки
Класс ScriptLink. Name. Предназначено для указания имени файла скрипта, который должен быть загружен. Может содержать относительный путь к файлу. При этом могут использоваться префиксы • ~Site • ~SiteCollection
Класс ScriptLink. LoadAfterUI. Указывает в какой момент времени должен быть помещен скрипт на страницу. • False -скрипт помещается в head элемент • True - скрипт помещается в конец страницы. Свойство игнорируется при OnDemand = true
Загрузка скриптов по требованию • executeFunc • execute • LoadSODByKey
Загрузка скриптов по требованию Правило хорошего тона Нужно для
OnDemand trick Использование
Скрипты для веб частей • Использование ClientIdвеб части при наименовании функций • Использование _spBodyOnLoadFunctionNamesвместо $(document).ready()
Использование jQuery не использовать прямое обращение к $
Использование jQuery Использовать Namespace
Выводы • При добавлении скрипта использовать элемент ScriptLink • Грузить скрипт по требованию, если это возможно • Грузить скрипт с текущего семейства сайтов • Использовать ClientIdвеб части при наименовании функций в веб-частях • Использовать _spBodyOnLoadFunctionNames • При обращении к CSOM или другим SharePoint объектам, всегда убеждаться в загрузке нужных скриптов • При использовании jQueryне использовать прямое обращение к $ • Использовать namespace при написании скриптов • Смотреть что может содержит _spPageContextInfo на странице