У меня есть страница, содержащая несколько кнопок facebook "Like", встроенных с использованием встроенного метода fbml (в отличие от iframe). Достаточно просто. Страница отображается отлично, все работает так, как ожидалось.
ОДНАКО...
Как только я добавлю объявление пространства имен xmlns:fb="http://www.facebook.com/2008/fbml"
в документ, я замечаю радикальное ухудшение начального времени визуализации страницы в IE. Более тщательный осмотр (с использованием инструментов разработчика ie8) показывает, что вся DOM снова "обновляется" или "перепланируется" снова и снова, в течение короткого периода после начальной загрузки страницы. Некоторые дополнительные ошибки показывают, что количество переходов, по-видимому, пропорционально количеству элементов <fb:xxx>
в документе.
Удаление объявления xmlns устраняет проблему.
Кто-нибудь испытал это раньше?
ОБНОВЛЕНИЕ:
Некоторые дальнейшие копания выявили еще некоторые особенности... Проблема в том, что IE пересматривает страницу, включая повторное выполнение любых встроенных скриптов и т.д. Причиной не является включение самих xmlns, а скорее рендеринг xfbml самих кнопок. Добавление xmlns просто вызвало рендеринг xfbml без xmlns, кнопки никогда не отображались в первую очередь. Следующая заметка иллюстрирует проблему.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en" xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<script type="text/javascript">
alert('some inline js');
</script>
</head>
<body>
<div id="fb-root"></div>
<div>
<fb:like href="#" onclick="location.href='http://example.local/1'; return false;" layout="button_count" show_faces="false" width="80" action="like" font="arial" colorscheme="light"></fb:like>
<fb:like href="#" onclick="location.href='http://example.local/2'; return false;" layout="button_count" show_faces="false" width="80" action="like" font="arial" colorscheme="light"></fb:like>
<fb:like href="#" onclick="location.href='http://example.local/3'; return false;" layout="button_count" show_faces="false" width="80" action="like" font="arial" colorscheme="light"></fb:like>
</div>
<script src="http://connect.facebook.net/en_US/all.js#xfbml=1" type="text/javascript"></script>
</body>
</html>
При запуске, т.е. приведенный выше пример генерирует 3 предупреждения, я ожидаю увидеть только один.