| 
	| 
	
	| 
		
	| 
			
			 
			
				17.06.2009, 14:11
			
			
			
		 |  
	|  |  
	| 
				Пошаговый вывод скрипта для IE всех версий.
			 Здравствуйте!  
Помогоите, пожалуйста, разобраться в скрипте меню "Dtree". При выводе через него на страницу большого меню (около 2000 пунктов) IE всех версий ругаются, что скрипт на данной странице может вызвать зависание браузера и спрашивает продолжить выполнение или нет. Если нажать продолжить - скрипт работает, но нужно сделать чтоб это предупреждение не показывалось.
 
Думаю сделать пошаговый вывод меню, но очень плаваю в javascript    
Помогите, пожалуйста...
 
Если не ошибаюсь, то формирование происходит именно здесь. Как бы поставить сюда задержку или вывод не сразу, а с интервалом маленьким частями?
 
// Outputs the tree to the page
dTree.prototype.toString = function() {
	var str = '<div class="dtree">\n';
	if (document.getElementById) {
		if (this.config.useCookies) this.selectedNode = this.getSelected();
		str += this.addNode(this.root);
	} else str += 'Browser not supported.';
	str += '</div>';
	if (!this.selectedFound) this.selectedNode = null;
	this.completed = true;
	return str;
};
// Creates the tree structure
dTree.prototype.addNode = function(pNode) {
	var str = '';
	var n=0;
	if (this.config.inOrder) n = pNode._ai;
	for (n; n<this.aNodes.length; n++) {
		if (this.aNodes[n].pid == pNode.id) {
			var cn = this.aNodes[n];
			cn._p = pNode;
			cn._ai = n;
			this.setCS(cn);
			if (!cn.target && this.config.target) cn.target = this.config.target;
			if (cn._hc && !cn._io && this.config.useCookies) cn._io = this.isOpen(cn.id);
			if (!this.config.folderLinks && cn._hc) cn.url = null;
			if (this.config.useSelection && cn.id == this.selectedNode && !this.selectedFound) {
					cn._is = true;
					this.selectedNode = n;
					this.selectedFound = true;
			}
			str += this.node(cn, n);
			if (cn._ls) break;
		}
	}
	return str;
};
			
			
	
			
			
			
			
			
				  |  |  
	| 
		
	| 
			
			 
			
				17.06.2009, 15:04
			
			
			
		 |  
	| 
		
			|  | Матрос       |  | 
					Регистрация: 04.04.2008 
						Сообщений: 6,246
					 
		
 |  |  
	| в JS нету функции задержки, хотя имеется эмуляция ее, вызывающая 100% загрузку процессора, что в данном случае явно не подходитсудя по всему ваш скрипт оперирует строками, из которых он и "собирает меню"
 я не вижу способа сделать его асинхронным, для распределения нагрузки по времени
 Но, подозреваю, что это и не помогло бы, потому что скорее всего осел ругается не из-за того что скрипт ест много ЦПУ, а наверно из-за того что формирует очень длинную строку
 так как скрипт формирует строку, котору потом видиво выводит в браузер(по-крайней мере так выглядит из этого скрипта), то можно было бы попытатся выводить ноды верхнего уровня по-отдельности
 без остального сркипта, и образца его применения, трудно сказать, можно ли что-то сделать, но в любом случае, это уже не помощь, а работа
 |  |  
	| 
		
	| 
			
			 
			
				17.06.2009, 15:16
			
			
			
		 |  
	|  |  
	| А нельзя ли сделать скрипт, который бы нажимал автоматом кнопку "нет" при предложении IE остановить выполнение скрипта (окно появляется несколько раз)? Если можно, то какая цена его? Пример этой "беды" здесь: http://www.plus38.info/index.php?opt...New&Itemid  =2 |  |  
	| 
		
	| 
			
			 
			
				17.06.2009, 15:34
			
			
			
		 |  
	| 
		
			|  | Матрос       |  | 
					Регистрация: 04.04.2008 
						Сообщений: 6,246
					 
		
 |  |  
	| 
	
 
	| Сообщение от Zidky |  
	| скрипт, который бы нажимал автоматом кнопку "нет" при предложении IE остановить выполнение скрипта |  
	
 такой срипкт в принципе невозможен |  |  
	| 
		
	| 
			
			 
			
				17.06.2009, 15:40
			
			
			
		 |  
	| 
		
			|  | Матрос       |  | 
					Регистрация: 04.04.2008 
						Сообщений: 6,246
					 
		
 |  |  
	| А зачем вы грузите дерево полностью?лучше было бы грузить дерево только по тем частям, которые выбрал пользователь
 или генерировать дерево на стороне сервера
 |  |  
	| 
		
	| 
			
			 
			
				17.06.2009, 15:53
			
			
			
		 |  
	|  |  
	| А нет ли безотказного сценария (примера), по которому можно заставить скрипт исполнять не в браузере, а на сервере? |  |  
	| 
		
	| 
			
			 
			
				17.06.2009, 16:05
			
			
			
		 |  
	| 
		
			|  | Матрос       |  | 
					Регистрация: 04.04.2008 
						Сообщений: 6,246
					 
		
 |  |  
	| только переписать генерацию дерева под ноль, чтобы оно генерировалось на серверном языке, анпример ПХП |  |  
	| 
		
	| 
			
			 
			
				17.06.2009, 17:55
			
			
			
		 |  
	| 
		
			|  | Матрос       |  | 
					Регистрация: 04.04.2008 
						Сообщений: 6,246
					 
		
 |  |  
	| эта библиотека не предназначена для таких трюков, как выяснилоськак минимум надо дописать изрядно функционала в ней
 но лучше использовать какую-нибудь более современную библиотеку генерации дерева, расчитанную на такие трюки
 стоимость своего труда по доработке этой библиотеки я оцениваю в 100$
 так много в первую очередь, из-за того что она не предназначена для таких трюков, и над этим придется изрядно покорпеть
 |  |  
	| 
		
	| 
			
			 
			
				17.06.2009, 18:10
			
			
			
		 |  
	|  |  
	| Жаль, но такой бюджет не выделят... Извините. |  |  |  |