В ECMAScript 5 у вас есть новый подход в итерационных полях literal - Object.keys
. Дополнительную информацию вы можете увидеть на MDN
Мой выбор ниже, как более быстрое решение в текущих версиях браузеров (Chrome30, IE10, FF25)
var keys = Object.keys(p),
len = keys.length,
i = 0,
prop,
value;
while (i < len) {
prop = keys[i];
value = p[prop];
i += 1;
}
Вы можете сравнить производительность этого подхода с различными реализациями на jsperf.com :
Поддержка браузера, которую вы можете видеть на таблице сопоставления Kangax
Для старого браузера у вас простой и full polyfill
UPD:
сравнение производительности для всех наиболее популярных случаев в этом вопросе на perfjs.info
:
Если Вы хотите получить в настоящее время аутентифицируемого пользователя от контекста SharePoint, необходимо остаться в контексте SharePoint. Это означает размещать Ваше пользовательское веб-приложение в SharePoint (см. http://msdn.microsoft.com/en-us/library/cc297200.aspx). Затем из Вашей ссылки пользовательского приложения Microsoft. SharePoint и использование SPContext возражают для получения имени пользователя. Например:
SPContext.Current.Web.CurrentUser.LoginName
Можно все еще использовать веб-Часть Средства просмотра Страницы для ссылки на URL сайта, теперь расположенного в контексте SharePoint.
Спасибо "куча" для ответов!
Оказывается, что, пока страница asp.net использует тот же URL и порт как сайт Sharepoint, работы аутентификации через оба сайта.
Решение состоит в том, чтобы использовать Виртуальный каталог в sharepoint сайте и установить страницу asp.net там.
Когда это работает в отладке, которая использует в SharePoint?
Ваша страница и сайт Sharepoint могли бы также быть на различных серверах, что касается аутентификации - для получения информации по Вам, возможно, должен был бы передать его через QueryString от webpart, если Вы можете - или Вы, возможно, должны были бы сделать свой собственный webpart, чтобы сделать это (просто помещает IFRAME в часть с набором src к Вашей странице с QueryString, передающим имя пользователя).
Действительно кажется, что это было бы проблемой безопасности при использовании названия чего-нибудь, хотя - если Вы просто отображаете его, затем это прекрасно, вероятно.
Если Вы на самом деле должны аутентифицироваться, Вы, возможно, должны были бы добавить аутентификацию в web.config сайта, размещающего Вашу автономную страницу.
править: Я думаю, что у Вас была бы лучшая удача при помещении страницы на тот же порт и сервер как SharePoint.
Я подозреваю, что Вам будет нелегко конкретно запрашивать SharePoint для в настоящее время аутентифицируемого имени пользователя. Я не могу думать о способе легко получить доступ к контексту SharePoint из отдельного веб-приложения как Вы, описывают.
Я не знаю, какую схему аутентификации Вы используете, но можно хотеть рассмотреть использование Kerberos, поскольку я нашел, что это может сделать эти виды сценариев немного легче путем обеспечения делегации и передающих учетных данных от приложения до приложения или сервера к серверу.