возвращаемое значение setInterval/setTimeout

Как отмечает Джереми в своем ответе, iOS не добавляет разделители выше / ниже верхних / нижних колонтитулов; Вы можете просто использовать UIView, чтобы создать линию самостоятельно.

Вот код для добавления стандартного вида разделителя к представлению заголовка:

CGRect sepFrame = CGRectMake(0, headerView.frame.size.height-1, 320, 1);
seperatorView = [[[UIView alloc] initWithFrame:sepFrame] autorelease];
seperatorView.backgroundColor = [UIColor colorWithWhite:224.0/255.0 alpha:1.0];
[headerView addSubview:seperatorView];

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

39
задан Salvador Dali 23 December 2015 в 06:38
поделиться

5 ответов

Возвращает значение, которое можно использовать для отмены таймера. Таким образом, кажется маловероятным, что они возвращают одно и то же значение (если только они не повторно используют значения и один из таймеров уже был отменен)

Mozilla заявляет, что это уровень DOM 0, но не является частью спецификации. (посмотрите внизу страницы)

У меня есть еще лучшая ссылка:

Наббл говорит:

SetTimeout и setInterval взяты из исходная спецификация Javascript, pre-ECMA. Эта спецификация не официально стандартизирован везде, но поддерживается всеми веб-браузерами и большинство реализаций Язык Javascript. (Включая ActionScript.)

Спецификации до ECMA часто известны как API "ДОМ-0". Поскольку у них есть никогда раньше не стандартизировался, это имеет смысл для HTML5, наконец, специфицировать не устаревшие API в попытке обеспечить согласованную среду через браузеры. Особенно когда недавние события доказали, что там компании, которые любят внедрять буква стандарта, но не дух.

Прочтите исходную спецификацию здесь или от Sun (который был одним из первых сторонников JavaScript).

36
ответ дан 27 November 2019 в 02:27
поделиться

Проверено в Opera 9, Safari 3, Firefox 3 и IE 7.

Все возвращаемые целочисленные значения, начиная с 1 и затем увеличиваясь на 1 для каждого вызова setTimeOut ( ) и setInterval () . Однако я заметил, что браузеры запускали счетчики и обрабатывали их по-разному:

  • IE запускался с (по-видимому) случайным 6-значным числом, но последующие вызовы любой функции увеличивали это число. После закрытия и повторного открытия IE я обнаружил, что начальный номер был сгенерирован случайным образом, так как он далек от счетчика из предыдущего сеанса.
  • Opera поддерживала счетчик для каждой вкладки - закрытие вкладки и открытие новой запускало счетчик с 1 в новой вкладке.
  • В Safari счетчик был глобальным - открытие новой вкладки и вызов функций на разных вкладках, казалось, увеличивали глобальный счетчик ссылок.
  • В Firefox счетчик, казалось, начинался с 2 и увеличивался при каждом последующем вызове любой функции. Как и в Opera, каждая вкладка имеет собственное значение счетчика, но все они начинаются с 2.

Обратите внимание, что во всех сценариях нет двух одинаковых идентификаторов (по крайней мере, на одной вкладке).

33
ответ дан 27 November 2019 в 02:27
поделиться

Я думаю, что это нестандартное поведение. В firefox это просто целое число, увеличение при каждом вызове setTimeout или setInterval . И нет, они не могут иметь одинаковое значение.

7
ответ дан 27 November 2019 в 02:27
поделиться

С веб-сайта Mozilla:

intervalID - это уникальный идентификатор интервала, который вы можете передать в clearInterval ().

Таким образом, он уникален :)

3
ответ дан 27 November 2019 в 02:27
поделиться

Могут ли они иметь одинаковое значение, зависит от реализации JavaScript. Как упоминал Maciej в Firefox, они не могут иметь то же значение, что и тот же счетчик. Однако в других браузерах это может быть иначе, поэтому, возможно, лучше не полагаться на то, что они никогда не будут иметь одинаковое значение.

2
ответ дан 27 November 2019 в 02:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: