Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.09.2011, 17:56
Новичок на форуме
Отправить личное сообщение для stvord Посмотреть профиль Найти все сообщения от stvord
 
Регистрация: 31.08.2011
Сообщений: 6

Конфликт с jquery
Используется некий javascript для создания адаптивных блоков.
Все хорошо, но как только подключается jquery страница начинает "подергиваться" на пол секунды потом это пропадает.
Не подскажите в чем может быть конфликт?
Причем в firefox этого "дерганья" не наблюдается.
Код:
<script type="text/javascript" charset="utf-8"> 
window.onload = init; 
window.onresize = init;
// Функция показывающая ширину экрана, прикольно же.
function ShowUsScreenWidth(){
	var fmt = document.documentElement.clientWidth;
	fmt = fmt - (fmt % 10);
	document.getElementById('count').innerHTML=fmt+'px';
}
 
var g_count=5; // дефолтное кол-во колонок, генерируемое на сервере
 
 
function init(){
	g_result=document.getElementById("mytable");
	if(g_result){
		g_tds=g_result.getElementsByTagName("td");
		window.onresize=resize;
		resize();
	}
}
// Считаем кол-во колонок, которое помещается в экран
function CountColumns(){
	var c=Math.floor(document.documentElement.offsetWidth/(230));
	return c>0?c:1;
	}
	
function resize(){
	ShowUsScreenWidth(); //обновляем значение ширины экрана, не относится к скрипту
	var cols=CountColumns();// кол-во столбцов в таблице
	if(g_count==cols){return;}//ничего не делать, если кол-во колонок то же, что и ранее
	g_count=cols; 
	var table=document.createElement("table");
	var tbody=document.createElement("tbody");
	var rows=g_tds.length/cols; // считаем кол-во строк в таблице
	var width=100/cols; // ширина каждой ячейки в процентах
	for(var j=0;j<rows;j++){
		var row1=document.createElement("tr");
		for(var i=0;i<cols;i++){
			if(!g_tds[0]){break;}
			g_tds[0].style.width=width+"%";
			row1.appendChild(g_tds[0]);
		}
		tbody.appendChild(row1);
	}
	table.appendChild(tbody);
	table=g_result.appendChild(table);// добавляем новую таблицу
	var prev=table.previousSibling;
	if(prev!=null)prev.parentNode.removeChild(prev);// удаляем старую таблицу
	
}
 
</script>


Прикладываю полную страничку с подключенным jquery.

Заранее большое спасибо за помощь.
Вложения:
Тип файла: zip blocks.zip (1.8 Кб, 8 просмотров)
Ответить с цитированием
  #2 (permalink)  
Старый 01.09.2011, 21:12
Аватар для crayday
Аспирант
Отправить личное сообщение для crayday Посмотреть профиль Найти все сообщения от crayday
 
Регистрация: 30.08.2011
Сообщений: 61

Подёргивания - ещё не причина для конфликта с jquery! =)

Просто страница становится тяжелее, FF лучше других кэширует страницу, вот у него и нет подёргивания, остальные грузят из кэша грубее.

Я буду прав, если скажу, что заявленные полсекунды конвульсий браузера - это всё-таки преувеличение, и речь идёт о мгновении?

Последний раз редактировалось crayday, 01.09.2011 в 21:13. Причина: орфография мать моя женщина
Ответить с цитированием
  #3 (permalink)  
Старый 01.09.2011, 21:27
Новичок на форуме
Отправить личное сообщение для stvord Посмотреть профиль Найти все сообщения от stvord
 
Регистрация: 31.08.2011
Сообщений: 6

Сообщение от crayday Посмотреть сообщение
Я буду прав, если скажу, что заявленные полсекунды конвульсий браузера - это всё-таки преувеличение, и речь идёт о мгновении?
Да вы правы, и все таки этого никак не избежать?
Ответить с цитированием
  #4 (permalink)  
Старый 01.09.2011, 21:33
Аватар для crayday
Аспирант
Отправить личное сообщение для crayday Посмотреть профиль Найти все сообщения от crayday
 
Регистрация: 30.08.2011
Сообщений: 61

Такая проблема обычно не является проблемой, но
1. Как вариант можно попробовать назначить init обработчиком ready события, а не onload. Как минимум это не навредит.
2. Можно загрузить белый див поверх всего экрана (background: white; position: fixed; width: 100%; height: 100%; left: 0; top: 0), а когда содержимое страницы загрузится, убрать его. Дёрганья видно не будет, а эффект будет приблизительно тот же, как и когда страница просто загружается.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Конфликт плагинов jQuery. Flashton Элементы интерфейса 4 22.12.2017 11:15
Динамически загружаемая jQuery и jQuery-функции в одном файле 67bytes Общие вопросы Javascript 6 06.03.2013 07:01
Конфликт AJAX и Jquery Кирюха =) AJAX и COMET 15 08.08.2011 12:36
конфликт jQuery Vintage jQuery 0 21.07.2011 13:31
Конфликт Jquery и Mootools Bangoo jQuery 1 28.03.2011 12:03