Да вроде нет, сначала рендерим, потом засекаем второй раз.
var endTime = Date.now();
printOutput("100 iterations of setZeroTimeout took " + (endTime - startTime) + " milliseconds.");
i = 0;
startTime = Date.now();
setTimeout(test2, 0);
|
Там где есть postMessage (а это, я так понимаю, FF, Chrome, Safari) можно сделать ещё проще — навесить на window свой кастомный эвент и будет работать как надо
|
Цитата:
|
Объясните мне тупому, почему все же отказались от решения с dispatchEvent ?
У меня следующий код вроде везде работает (кроме IE конечно):
var elem = document.createElement('div');
elem.onclick = function(e) {
alert('Ok!');
};
var e = document.createEvent('HTMLEvents');
e.initEvent('click', false/* bubbles */, false/* cancelable */);
elem.dispatchEvent(e);
|
потому что не работает в ие
|
Цитата:
var xmlDoc = new ActiveXObject('Microsoft.XMLDOM'), done = false;
xmlDoc.onreadystatechange = function() {
if (!done) {
done = true;
alert('Ok!');
}
};
xmlDoc.loadXML('');
но он медленный гад :( . done нужен потому-что событие срабатывает много раз и всякие this.onreadystatechange = null и xmlDoc.abort() его не отменяют. tenshi, а зачем нужна фабрика, не проще сразу вызывать переданную функцию? Можно даже в Function.prototype добавить метод. |
Цитата:
Цитата:
var fragment = document.createDocumentFragment();
var node = document.createElement('div');
node.attachEvent('onpropertychange', function(){
alert('Property change');
});
fragment.appendChild(node);
node.fireEvent('onpropertychange', document.createEventObject());
|
Цитата:
Цитата:
UPD: афигеть, даже без attachEvent можно:
var elem = $d.createElement('div');
$d.createDocumentFragment().appendChild(elem);
elem.onclick = handler;
elem.fireEvent('onclick', $d.createEventObject());
моя счастлив :) . |
Цитата:
Даже не пытайтесь переубедить. Цитата:
var fragment = document.createDocumentFragment();
var node = document.createElement('div');
node.attachEvent('onpropertychange', function(){
alert('Property change');
});
fragment.appendChild(node);
node.innerHTML = '';
А вот если поместить его в документ, то всё ок. Осталось только слить 2 скрипта вместе и готово. |
Цитата:
Цитата:
|
| Часовой пояс GMT +3, время: 18:51. |