Должен ли я использовать window.onload или блок скриптов?

Ошибка довольно понятна. Ваш временной ряд, однако вы его создали, не имеет сезонных циклов или менее 2 сезонных циклов. (Это может не указывать, что данные являются не сезонными, возможно, вы неправильно создали samplets.) Например, я могу воспроизвести ошибку, имея временные ряды с 7 квартальными наблюдениями, что явно не два полных полных сезонных цикла:

R> TS <- ts(1:7, frequency = 4)
R> decompose(TS)
Error in decompose(TS) : time series has no or less than 2 periods
R> TS
  Qtr1 Qtr2 Qtr3 Qtr4
1    1    2    3    4
2    5    6    7     

Аналогично, если я не укажу какую-либо субгоновую частоту (т. е. frequency = 1 в вызове ts(), создавая ваш объект временного ряда samplets [который по умолчанию]) Я получаю ту же ошибку:

R> TS <- ts(1:7)
R> decompose(TS)
Error in decompose(TS) : time series has no or less than 2 periods

В любом случае это указывает на то, что вы неправильно создали свой "ts" объект, не указав правильные аргументы frequency или deltat или у вас есть временные ряды недостаточной длины (количество лет) для покрытия двух полных сезонных циклов.

Пожалуйста, прочтите ?ts более подробно, чтобы убедиться, что вы правильно создаете samplets. Если вам нужна дополнительная помощь, опубликуйте воспроизводимый пример.

13
задан canolucas 8 May 2015 в 17:55
поделиться

10 ответов

Определенно используйте onload. Разделите свои сценарии от Вашей страницы, или Вы сойдете с ума, пытаясь распутать их позже.

4
ответ дан John Millikin 8 May 2015 в 17:55
поделиться
  • 1
    obj и особенно pdb файлы часто огромны и просто не впишутся в память (по крайней мере, не в часть системы памяти, готово использовать в качестве кэша). – Suma 30 April 2010 в 13:15

onload событие считают надлежащим способом сделать это, но если Вы не возражаете пользоваться библиотекой JavaScript, $ jQuery (документ) .ready () еще лучше.

$(document).ready(function(){
  // manipulate the DOM all you want here
});

преимущества:

  1. $ Вызова (документ) .ready () как много раз, поскольку Вы хотите зарегистрировать дополнительный код для выполнения - можно только установить window.onload однажды.
  2. $ (документ) .ready () действия происходят, как только DOM завершен - window.onload, должен ожидать изображений и такого.

я надеюсь, что не становлюсь Парнем, Который Предлагает jQuery По Каждому Вопросу о JavaScript, но это действительно является большим.

16
ответ дан Neall 8 May 2015 в 17:55
поделиться
  • 1
    стоящий движения... Я думаю, что можно установить промежуточные файлы для движения некоторого места, отдельного так это wouldn' t должен быть постоянным за исключением того, что, если файлы ONJ идут, you' d должны сделать полные сборки все время. Не уверенный, если it' s стоящий стычки, зависит, насколько полезный псевдодиск мог бы быть в автоматизации всего этого – Mr. Boy 30 April 2010 в 08:54

Я записал много JavaScript, и window.onload ужасен способ сделать это. Это является хрупким и ожидает, до каждый актив страницы загрузился. Таким образом, если одно изображение берет навсегда, или ресурс не делает тайм-аута, пока 30 секунд, Ваш код не будет работать, прежде чем пользователь может видеть/управлять страницу.

кроме того, если другая часть JavaScript решает использовать window.onload = функция () {}, Ваш код сдуется.

надлежащим способом выполнить Ваш код, когда страница готова, является ожидание элемента, который необходимо изменить, готово/доступно. Многие библиотеки JS имеют это как встроенную функциональность.

Выезд:

10
ответ дан Ryan Doherty 8 May 2015 в 17:55
поделиться
  • 1
    +1. Перемещение от диска вращения до SSD может иметь невероятное значение со скоростью большинства процессов сборки. Повышению скорости обычно, как должно замечаться, верят:-). – Mike Clark 17 July 2013 в 22:05

window.onload на IE ожидает двоичной информации для загрузки также. Это не строгое определение, "когда DOM загружается". Таким образом, может быть значительная задержка между тем, когда страница, как воспринимают, загружается и когда Ваш сценарий запущен. Из-за этого я рекомендовал бы изучить одну из многочисленных платформ JS (прототип/jQuery) для обработки тяжелого подъема для Вас.

2
ответ дан TonyLa 8 May 2015 в 17:55
поделиться
  • 1
    Это действительно решает проблему создания " большой change" в соединении производительности. – shoosh 29 April 2010 в 21:56

Вот очень хорошая статья об этой теме:

http://mattberseth.com/blog/2008/08/when_is_it_safe_to_modify_the.html

2
ответ дан rp. 8 May 2015 в 17:55
поделиться
  • 1
    ха? он спросил, ускорит ли ssd соединение, если это - связанный io. – Byron Whitlock 29 April 2010 в 22:01

Фанат @The

я вполне уверен, которым window.onload назовут снова, когда пользователь поразит кнопку "Назад" в IE, но не становится позвонившим снова в Firefox. (Если они недавно не изменили его).

В Firefox, onload назван, когда DOM закончил загружаться независимо от того, как Вы перешли к странице.

1
ответ дан John Millikin 8 May 2015 в 17:55
поделиться
  • 1
    Предложение альтернативных подходов так же допустимо как ответ на литеральный вопрос (если вопрос не говорит, что альтернативный подход уже рассмотрели и отбросили). – Ben Voigt 29 April 2010 в 22:29

Мое взятие является бывшим becauase, у Вас может только быть 1 функция window.onload, в то время как встроенные блоки сценария Вы имеете число n .

0
ответ дан David Basarab 8 May 2015 в 17:55
поделиться
  • 1
    Как заключают Вас сделка с тем, что необходимо препятствовать тому, чтобы средство выбора выбрало будущие даты? – CodeBlue 22 January 2013 в 23:05

В то время как я соглашаюсь с другими об использовании window.onload, если это возможно, для чистого кода, я вполне уверен, которым window.onload назовут снова, когда пользователь поразит кнопку "Назад" в IE, но не становится позвонившим снова в Firefox. (Если они недавно не изменили его).

Редактирование: у Меня могло быть это назад.

В некоторых случаях, необходимо использовать встроенный сценарий, когда Вы хотите, чтобы Ваш сценарий был оценен, когда пользователь поражает кнопку "Назад" от другой страницы, назад к Вашей странице.

Любые исправления или дополнения к этому ответу приветствуются... Я не эксперт JavaScript.

1
ответ дан The How-To Geek 8 May 2015 в 17:55
поделиться
  • 1
    Я просматриваю Пошаговую компоновку (/Gm?) как действительный ответ. Печально я выключил его так или иначе в пользу / MP (компиляция мультипотока) для использования моих ядер лучше. – Mr. Boy 30 April 2010 в 08:52

Некоторые платформы JavaScript, такой как mootools, предоставляют Вам доступ к специальному мероприятию, названному "domready":

Содержит окно Event 'domready', который выполнится, когда DOM загрузился. Чтобы гарантировать, чтобы элементы DOM существовали, когда код, пытающийся получить доступ к ним, выполнен, они должны быть размещены в 'domready' событии.

window.addEvent('domready', function() {
  alert("The DOM is ready.");
});
3
ответ дан matt b 8 May 2015 в 17:55
поделиться

onLoad, потому что намного легче сказать то, что выполняет код, когда страница загружается, чем необходимость читать вниз через ставриды HTML, ища теги script, которые могли бы выполниться.

0
ответ дан DancesWithBamboo 8 May 2015 в 17:55
поделиться
  • 1
    Можно ли объяснить, Как использовать этот класс. – Mani 18 March 2013 в 06:40
Другие вопросы по тегам:

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