Одно правило при программировании - не оптимизировать микро.
Другое правило заключается в написании четкого кода.
Но в этом случае применяется другое правило. Если вы пишете оптимизированный код, избегайте любого кода, который может вызвать ветвления, так как вы можете вызвать нежелательные дампы конвейера процессора из-за неудачного предсказания ветвлений.
Помните также, что в ассемблере нет типов bool
и int
как таковых: просто регистры, так что вы, вероятно, обнаружите, что все преобразования будут оптимизированы. Поэтому
b += a;
побеждает для меня; это также яснее.
+1 к вашему вопросу, это было именно то, что я искал, и спасибо за подсказку, данную непосредственно самим ответом.
Я немного погуглил и согласно http://www.quirksmode.org/dom/w3c_html.html кросс-браузерных таблиц я думаю, что правильный ответ:
function GetOwnerWindow(html_node)
{
/*
ownerDocument is cross-browser,
but defaultView works on all browsers except Opera/IE that use parentWinow
*/
return (html_node.ownerDocument.defaultView) ?
html_node.ownerDocument.defaultView :
html_node.ownerDocument.parentWindow;
}
Или может быть даже лучше:
return html_node.ownerDocument.defaultView || html_node.ownerDocument.parentWindow;
Plz дайте мне знать ваши мысли.
Я нашел комбинацию свойств, которыми я был после:
node.ownerDocument.defaultView
Это возвращает объект окна, которому принадлежит узел. Обратите внимание, что это не работает в IE.
Можно хотеть использовать сам. сам ссылка на текущий документ.
Из iframe:
<body>
<div id="example">Example!</div>
<script type="text/javascript">
window.onload = function () {
var exampleNode = document.getElementById('example');
exampleNode.bar = function () {
// The highest window object:
top;
// The parent node:
self;
// The parent node ( except in IE );
this.ownerDocument.defaultView;
};
};
</script>
</body>
Пересечение нескольких объектов окна:
В объектной модели браузера объект главного окна упоминается как вершина. Другие глобальные объекты расположены в древовидной структуре, которая происходит от вершины. Со ссылкой на вершину можно перейти к другим глобальным объектам в дереве при помощи их имен и отношений, очень таким же образом, поскольку Вы пересекаете DOM.
Когда у Вас есть несколько объектов окна, как Вы делаете в случае iframe (со старой школой framesets), кадр имеет атрибут имени. Учитывая положение объектов относительно главного объекта окна, можно использовать имя ребенка для доступа к объекту.
<iframe src ="/default.html" name="advertisement"></iframe>
и затем от контекста главного окна:
self.advertisement