JavaScript best practice in SharePoint 2010 Alexander Krupsky Senior SharePoint Developer Содержание. 1. 2. 3. 4. 5. 6. 7. Класс ScriptLink Загрузка скриптов по требованию OnDemand trick Скрипты для веб частей Переменная _spPageContextInfo Использование jQuery Выводы 2 Класс 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 OnDemand trick Использование Скрипты для веб частей • Использование ClientId веб части при наименовании функций • Использование _spBodyOnLoadFunctionNames вместо $(document).ready() Переменная _spPageContextInfo Использование jQuery не использовать прямое обращение к $ Использование jQuery Использовать Namespace Выводы • • • • • • • • • При добавлении скрипта использовать элемент ScriptLink Грузить скрипт по требованию, если это возможно Грузить скрипт с текущего семейства сайтов Использовать ClientId веб части при наименовании функций в вебчастях Использовать _spBodyOnLoadFunctionNames При обращении к CSOM или другим SharePoint объектам, всегда убеждаться в загрузке нужных скриптов При использовании jQuery не использовать прямое обращение к $ Использовать namespace при написании скриптов Смотреть что может содержит _spPageContextInfo на странице