Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 30.11.2014, 01:57
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,127

по тому что setTimeout это функция
т.е. то что ты пишешь в скобках это параметры этой функции они вычисляются в момент вызова данной функции
вызов функции ни как не тормозит выполнения кода просто когда то в далеком будущем наступит событие timeout
и будет выполнен первый параметр функции setTimeout

Последний раз редактировалось MallSerg, 30.11.2014 в 02:08.
Ответить с цитированием
  #32 (permalink)  
Старый 30.11.2014, 09:25
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от MallSerg
по тому что setTimeout это функция
т.е. то что ты пишешь в скобках это параметры этой функции они вычисляются в момент вызова данной функции
вызов функции ни как не тормозит выполнения кода просто когда то в далеком будущем наступит событие timeout
и будет выполнен первый параметр функции setTimeout
я правильно понял, что ты утверждаешь, что первый параметр setTimeout, то есть func или code из цитаты ниже будет вычислен в момент вызова setTimeout?

но всё это рушится по описанию ниже
https://developer.mozilla.org/en-US/...ers.setTimeout
Цитата:
Calls a function or executes a code snippet after a specified delay.

var timeoutID = window.setTimeout(func, delay, [param1, param2, ...]); var timeoutID = window.setTimeout(code, delay);
и при простейшей проверке с регулировкой delay


Сообщение от kyt
А в чем тогда проблема setTimeout?
Сообщение от kyt
Замена alert на setTimeout(function() { }, 500) проблемы не решает.
Ошибок нет, ячейки не крашеные
должно решать, если ты сделаешь хотя бы так
setTimeout(function () {
	$('#my_table td:nth-child(28)').each(function () {
		if(this.innerHTML == '1') {
			$(this).closest("tr").addClass("active");
		}
	});
},*!*5000*/!*);

но сам понимаешь, какое качество кода получится: любая случайная задержка в ответе более N выставленных секунд и твой код перестанет работать

чтобы окончательно убедиться можешь добавить console.log и посмотреть перед сравнением какое значение в ячейке
$('#my_table td:nth-child(28)').each(function() {
            console.log(this.innerHTML);
            if(this.innerHTML=='1'){


а в целом, это элементарные действия по тестированию нерабочего кода (убрать лишнее, наалертить/наконсольлогить), поэтому прочти и это Зачем ТС должен сделать тестовый пример с возможностью запуска?
и надеюсь теперь ты понимаешь, насколько ущербен твой исходный пост
Ответить с цитированием
  #33 (permalink)  
Старый 30.11.2014, 11:05
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,127

Сообщение от bes
я правильно понял, что ты утверждаешь, что первый параметр setTimeout, то есть func или code из цитаты ниже будет вычислен в момент вызова setTimeout?
Попытаюсь объяснить совсем на пальцах
небольшой пример «setTimeout ( a + b , 100 )»
это вызов функции в котором первым параметром идет JS выражение и оно будет вычислено еще до вызова функции
В случае «setTimeout ( function () {} , 100 )» первым параметром тоже идет выражение и оно так же будет вычислено (интерпретировано) до вызова setTimeout результатом вычисления данного выражения будет функция
т.е. по пунктам:
1. вычисляется выражение JS (выражение возвращает безыменную функцию)
2. происходит вызов setTimeout
3. наступает событие timeout в котором происходит вызов безымянной функции
Ответить с цитированием
  #34 (permalink)  
Старый 30.11.2014, 12:30
kyt kyt вне форума
Интересующийся
Отправить личное сообщение для kyt Посмотреть профиль Найти все сообщения от kyt
 
Регистрация: 29.11.2014
Сообщений: 24

Загадка разрешилась именно так как сказал bes.
Там долго тянулись данные из Ajax, потом перестраивалась таблица...
Была найдена функция
fnCreatedRow http://legacy.datatables.net/usage/callbacks и все заработало без alert.
Остается вопрос про setTimeout.
Мне не удалось адекватно запустить http://datatables.net/reference/option/ajax Если кто-то возьмется мне это пояснить за разумную мзду. Пожалуйста, напишите мне.
Ответить с цитированием
  #35 (permalink)  
Старый 30.11.2014, 12:32
kyt kyt вне форума
Интересующийся
Отправить личное сообщение для kyt Посмотреть профиль Найти все сообщения от kyt
 
Регистрация: 29.11.2014
Сообщений: 24

Оп, не обновил
Ответить с цитированием
  #36 (permalink)  
Старый 30.11.2014, 12:43
kyt kyt вне форума
Интересующийся
Отправить личное сообщение для kyt Посмотреть профиль Найти все сообщения от kyt
 
Регистрация: 29.11.2014
Сообщений: 24

Сообщение от bes Посмотреть сообщение
а в целом, это элементарные действия по тестированию нерабочего кода (убрать лишнее, наалертить/наконсольлогить), поэтому прочти и это Зачем ТС должен сделать тестовый пример с возможностью запуска?
и надеюсь теперь ты понимаешь, насколько ущербен твой исходный пост
Ну да, понимаю. И раскаиваюсь
Если бы я сразу сообразил как эту штуку локализовать и выложить, так бы и сделал.
Буду учить мат. часть и писать неущербные посты.
Ответить с цитированием
  #37 (permalink)  
Старый 30.11.2014, 12:54
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от kyt
Мне не удалось адекватно запустить http://datatables.net/reference/option/ajax Если кто-то возьмется мне это пояснить за разумную мзду. Пожалуйста, напишите мне.
сейчас, только дочитаю

http://datatables.net/reference/option/ajax
Цитата:
function ajax( data, callback, settings )
Description:
As a function, making the Ajax call is left up to yourself allowing complete control of the Ajax request. Indeed, if desired, a method other than Ajax could be used to obtain the required data, such as Web storage or an AIR database.

When the data has been obtained from the data source, the second parameter (callback here) should be called with a single parameter passed in - the data to use to draw the table.
в этом случае, как и написано, ты полностью берёшь контроль по отправке запроса за данными и обработки их при получении, всё остальное дело практики


Сообщение от kyt
Остается вопрос про setTimeout.
в чём он?
Ответить с цитированием
  #38 (permalink)  
Старый 30.11.2014, 12:57
kyt kyt вне форума
Интересующийся
Отправить личное сообщение для kyt Посмотреть профиль Найти все сообщения от kyt
 
Регистрация: 29.11.2014
Сообщений: 24

Сообщение от bes Посмотреть сообщение
в чём он?
Нет уже этого вопроса, не обновил страницу, когда писал ответ.
Ответить с цитированием
  #39 (permalink)  
Старый 30.11.2014, 12:58
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от kyt
Была найдена функция
fnCreatedRow http://legacy.datatables.net/usage/callbacks и все заработало без alert.
ах вот где они
на мой взляд, представление документации на их сайте страдает, хотя бы потому что на usage не выйдешь из меню на главной странице http://datatables.net/
а надо ещё каким-то образом добраться до http://legacy.datatables.net/
Ответить с цитированием
  #40 (permalink)  
Старый 30.11.2014, 13:01
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

вообще ж-па

http://datatables.net/manual/index
маленькими буквами
Цитата:
Version information:
The documentation here is for DataTables 1.10 and newer. Documentation for earlier versions of DataTables is available on the legacy site, although it is recommended you upgrade where possible.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Плюс перед функцией SunYang Общие вопросы Javascript 3 18.11.2014 00:28
Безопасность клиентского кода. BallsShaped Общие вопросы Javascript 35 29.10.2012 17:20
Поймать действие по нажатию клавиши, и запустить его перед default lexus1990 Events/DOM/Window 1 24.08.2011 15:34
alert!!! как быть с alert???? gooody jQuery 2 19.02.2010 21:44
alert () вместо sleep () artemiusgreat Общие вопросы Javascript 1 14.11.2008 14:06