Поделиться через


Различия управляемой объектной модели и объектной модели ECMAScript

Дата последнего изменения: 15 июля 2010 г.

Применимо к: SharePoint Foundation 2010

Доступно на сайте SharePoint Online

Необходимо быть в курсе следующих важных различий между ECMAScript (JavaScript, JScript) и управляемыми клиентскими объектными моделями.

  • Подпись методов может отличаться, как в конструкторе ClientContext() (JavaScript: ClientContext(serverRelativeUrl)). В JavaScript этот конструктор принимает URL-адрес относительно сервера, а управляемая версия этого конструктора принимает либо полный URL-адрес, либо Uri.

  • Эти две объектные модели используют разные типы данных. Объектная модель JavaScript не имеет эквивалентов для всех типов данных, имеющихся в управляемой объектной модели .NET Framework. JavaScript рассматривает StringCollection как string[]. С другой стороны, JavaScript имеет некоторые значения, отсутствующие в .NET Framework, например NaN или отрицательная и положительная бесконечность.

  • В объектной модели JavaScript разрешается проверка подлинности Forms, но для подключения к серверу нельзя указывать этот механизм проверки подлинности. Сведения об управляемых клиентских моделях и проверке подлинности Forms см. в статье Проверка подлинности в управляемых клиентских объектных моделях.

  • При создании элемента и добавлении его в существующую коллекцию последующие обновления этой коллекции нельзя выполнять до тех пор, пока запрос остается не выполненным. Эта проблема относится к добавлению элемента в коллекцию; с другой стороны, несколько клиентов могут одновременно выполнять чтение и запись в существующие элементы коллекции.

  • В качестве части общей безопасности запрещено использовать объектную модель JavaScript на странице для работы с данными Microsoft SharePoint Foundation 2010, если эта страница не содержит элемент управления "Сводка формы", например <SharePoint:FormDigest runat="server"/>.

  • Обычно нельзя совместно использовать переменные в разных областях, поэтому нельзя использовать и общие шаблоны программирования для операторов try/catch/finally.

  • Объект RoleDefinitionBindingCollection, используемый при создании назначений ролей, не имеет идентификации объекта. Таким образом, при создании нового объекта RoleDefinitionBindingCollection и последующей попытке использования его после создания назначения роли возникает ошибка.

  • Некоторые сравнения без учета регистра работают по-разному на клиенте и на сервере. Некоторые сравнения на стороне сервера выполняются с использованием языка веб-сайта, в то время как клиент использует только инвариантные язык и региональные параметры, чтобы избежать частных круговых путей. SharePoint Foundation 2010 не поддерживает сравнения без учета регистра, если сервер использует язык веб-сайта.

  • Вследствие ограничений асинхронной обратной передачи может обнаружиться, что встроенный скрипт не вызывается, когда страница находится в определенных режимах, например когда вики-страница находится в режиме редактирования. В таком случае следует с помощью элемента управления ScriptManager и его метода RegisterStartupScript() зарегистрировать блок скриптов запуска для выполнения кода, а не использовать встроенный скрипт.

См. также

Концепции

Обзор извлечения данных

Проверка подлинности в управляемых клиентских объектных моделях

Распространение и развертывание клиентской объектной модели

Общие задачи программирования

Другие ресурсы

Библиотека классов для клиента

Библиотека классов ECMAScript

Использование управляемой объектной модели клиента SharePoint Foundation 2010

Центр ресурсов для объектной модели клиента (Возможно, на английском языке)