Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - Anthony

Страницы: [1] 2 3 ... 6
1
JavaScript & JScript / Падает ИЕ
« : 21 Ноября 2006, 15:52:51 »
Проблема была на самом деле связана с утечкой памяти. См. тему Удаление таблиц.

2
JavaScript & JScript / Удаление таблиц
« : 21 Ноября 2006, 15:50:54 »
На форуме dklab подсказали. Кроче, вместо appendChild и removeChild, которые я использовал для создания и удаления строк и ячеек таблицы, нужно использовать insertRow, insertCell, deleteCell, deleteRow. Тогда память в ИЕ не засоряется.

3
JavaScript & JScript / Удаление таблиц
« : 17 Ноября 2006, 15:40:47 »
К вопросу об утечке памяти в ИЕ.

Как правильно удалять таблицу, а точнее tbody таблицы?

Сначала делал так:
var mTbl document.getElementById(tableId);
var 
tbl_body mTbl.tBodies[0];
mTbl.removeChild(tbl_body);


Но если верить программке Drip, да и просто в task manager-е видно, что нифига память не освобождается после удаления tbody.

Попробовал сделать так, но толку мало, все равно не освобождается память:
function garbage(tBodyObj)
{
	
while(
tBodyObj.firstChild)
	
{
	
	
var 
trow tBodyObj.firstChild;
	
	
while(
trow.firstChild)
	
	
{
	
	
	
var 
cell trow.firstChild;
	
	
	
trow.removeChild(cell);
	
	
	
cell null;
	
	
}
	
	
tBodyObj.removeChild(trow);
	
	
trow null;
	
}
}

var 
mTbl document.getElementById(tableId);
var 
tbl_body mTbl.tBodies[0];

garbage(tbl_body);
mTbl.removeChild(tbl_body);
tbl_body null;


Может есть более "правильные" варианты?

4
JavaScript & JScript / Отладка js в ИЕ
« : 17 Ноября 2006, 10:24:52 »
CGVictor
Да-да-да, уже сам нашел, память действительно утекает. Ну чтож, буду сам мусор чистить, потом посмотрим что получилось.

5
JavaScript & JScript / Отладка js в ИЕ
« : 16 Ноября 2006, 17:38:31 »
Единственное, где, по-моему, могут возникать траблы:
var srvr = new Object();
srvr.loader = function(url,parser)
{
	
this.url url;
	
this.req null;
	
this.parser parser;
	
this.ErrorFeed this.defErrorFeed;
	
this.errorMsg "Data loading error!";
	
this.loadData(url);
}
srvr.loader.prototype = {
	
loadData: function(url)
	
{
	
	
if(
window.XMLHttpRequest)
	
	
{
	
	
	
try { 
this.req = new XMLHttpRequest(); }
	
	
	
catch (
e) { this.req false; }
	
	
}
	
	
else if(
window.ActiveXObject)
	
	
{
	
	
	
try
	
	
	
{
	
	
	
	
this.req = new ActiveXObject("Msxml2.XMLHTTP");
	
	
	
}
	
	
	
catch (
e)
	
	
	
{
	
	
	
	
try { 
this.req = new ActiveXObject("Microsoft.XMLHTTP"); }
	
	
	
	
catch (
e) { this.req false; }
	
	
	
}
	
	
}
	
	
if(
this.req)
	
	
{
	
	
	
try
	
	
	
{
	
	
	
	
var 
load this;
	
	
	
	
this.req.onreadystatechange = function()
	
	
	
	
{
	
	
	
	
	
load.onReadyState.call(load);
	
	
	
	
}
	
	
	
	
this.req.open(\'GET\',url,true);
	
	
	
	
this.req.send(null);
	
	
	
}
	
	
	
catch(e)
	
	
	
{
	
	
	
	
this.ErrorEeed.call(this);
	
	
	
}
	
	
}
	
	
else
	
	
{
	
	
	
this.errorMsg = "Error creating XmlHttp object!";
	
	
	
this.ErrorEeed.call(this);
	
	
}
	
},
	
onReadyState:function()
	
{
	
	
var req = this.req;
	
	
if(req.readyState == 4)
	
	
{
	
	
	
var httpStatus = req.status;
	
	
	
if(httpStatus == 200 || httpStatus == 0)
	
	
	
	
this.parser.call(this);
	
	
	
else
	
	
	
	
this.ErrorFeed.call(this);
	
	
}
	
},
	
defErrorFeed:function()
	
{
	
	
alert(this.errorMsg);
	
}
}

function fetchData()
{
	
var script = this.req.responseText;
	
eval(script);
}

function TblsUpdate()
{
	
var url = "http://www.amity.ru/plugins/p890_monitor/tUpdate.php?rnd=" + ign();
	
var l = new srvr.loader(url,fetchData);
	
last_update = setTimeout(\'TblsUpdate()\',30000);
}


Может в коде ошибка?

6
JavaScript & JScript / Отладка js в ИЕ
« : 16 Ноября 2006, 17:13:12 »
CGVictor
ИЕ не сразу падает, а через несколько минут работы

7
JavaScript & JScript / Отладка js в ИЕ
« : 16 Ноября 2006, 17:01:12 »
CGVictor
Да здесь скорее всего не поможет MSD, что-то мне подсказывает. Отловить с его помощью момент фатальной ошибки врятли получится.

http://www.amity.ru/plugins/p890_monitor/monitor.php
Вот ссылка. Пытался сделать автообновление через динамическое создание