Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #411 (permalink)  
Старый 06.12.2013, 16:41
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Я не про это, думай дальше
__________________
kobezzza
code monkey
Ответить с цитированием
  #412 (permalink)  
Старый 06.12.2013, 16:46
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus3
 
Регистрация: 18.11.2013
Сообщений: 275

Ну говори тогда уже, я не знаю что там еще...... Нету там ошибок, это только скорее всего тебе кажется что это ошибка так как ты не знаешь ui. Щас ты скажешь что-то а я те дам обьяснение и ты поерепенишься немного, поищешь лазейки как обойти мое обьяснение а потом замолчишь или обзовешь меня, так все делают....

Последний раз редактировалось Maxmaxmaximus3, 06.12.2013 в 16:52.
Ответить с цитированием
  #413 (permalink)  
Старый 06.12.2013, 16:51
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Ну ок. У тебя не предусмотрено асинхронное АПИ, т.е. в твоём примере идёт голый вызов setInterval и в случае если виджет будет удалён, то он не сможет быть удалён сборщиком мусора + скорее всего посыпятся баги.
Все асинхронные вызовы вроде setInterval, setTimeout, AJAX, различные внешние события обязаны быть обработаны деструктором виджета.
__________________
kobezzza
code monkey
Ответить с цитированием
  #414 (permalink)  
Старый 06.12.2013, 16:52
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus3
 
Регистрация: 18.11.2013
Сообщений: 275

kobezzza, ты шутишь? я для примера это сделал, для всякого подобного будут сервисы запилины, я просто для примера показал, я думал это очеивдно) а так да, за наводку спасибо но я знаю уже.


Я не знаю что еще, замыканий в контроллерах нет, так они идеологией запрещены. Контроллеры должны быть независимые. При тестировании контроллер будет кукарекать так как с таким синтаксисом не сможет работать без фреймворка? тоже обойдем. Добавим встроенное средство тестирования, или что-то другое. Что еще то? Это все что было? Я просто для примера интервал сделал, чтобы эмитировать что от сервера что-то приходит.

в принципе можно вообще запретить доступ из контроллеров к глобальному window. стоит это делать? чтобы доступ был только к тому что локально и к тому что в сервисах подключено.
Ответить с цитированием
  #415 (permalink)  
Старый 06.12.2013, 16:53
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от Maxmaxmaximus3 Посмотреть сообщение
kobezzza, ты шутишь? я для примера это сделал, для всякого подобного будут сервисы запилины, я просто для примера показал, я думал это очеивдно) а так да, за наводку спасибо но я знаю уже.
Фреймворк обязан реализовывать АПИ очередей асинхронных вызовов. Если ты этого не понимаешь, то это плохо Т.к. всякий раз когда тебе приходится руками прописывать очищение памяти - это возможная потенциальная ошибка.
__________________
kobezzza
code monkey
Ответить с цитированием
  #416 (permalink)  
Старый 06.12.2013, 16:55
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus3
 
Регистрация: 18.11.2013
Сообщений: 275

Сообщение от kobezzza
Все асинхронные вызовы вроде setInterval, setTimeout, AJAX, различные внешние события обязаны быть обработаны деструктором виджета.
ну ладно ладно не буду ерепенится.. ты прав я не думал об этом, я думал заняться этим только в последнюю очередь когда буду утечки устранять. спасибо. правда

Сообщение от kobezzza
Фреймворк обязан реализовывать АПИ очередей асинхронных вызовов.
немного не понял, можешь обьяснить?
Ответить с цитированием
  #417 (permalink)  
Старый 06.12.2013, 17:00
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от Maxmaxmaximus3 Посмотреть сообщение
немного не понял, можешь обьяснить?
У меня например все виджеты наследуются от класса Defer, который реализует АПИ: this.setTimeout, this.setInterval, this.setImmediate, this.ajax, this.proxy, this.setQueue и т.д. т.е. используя это АПИ вместо голых вызовов мы полностью устраняем проблему возможных утечек памяти и багов, т.к. сами виджеты знают об этих обработчиках и отменяют их выполнение и чистят память автоматически в деструкторе.

Представь ситуацию: у тя есть блок, он дёргает аяксом данные, запрос бежит, а в этот момент юзер к примеру переходит на другую страницу (а у нас сингл пейдж апликейшн), т.е. блок был удалён, но его запрос никто не отменил и более того, когда сервер ответит он будет вызывать обработчики внутри мёртвого блока. Тоже самое со всеми остальными асинхронными вызовами и событиями, вроде image.onload.
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 06.12.2013 в 17:05.
Ответить с цитированием
  #418 (permalink)  
Старый 06.12.2013, 17:05
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus3
 
Регистрация: 18.11.2013
Сообщений: 275

kobezzza, точно, а сервисы у меня синглтоны, как и в ангуляре, то есть они ни чо не знают о виджетах и прочем. Лан спасибо лучше начать сразу об этом думать, чем потом. Я думал что используя сервисы я смогу как-то управлять этим,но сервисы то ни чо не знают о том кто будет их использовать, и о том что эти использовальщики могут исчезать и появляться.
Ответить с цитированием
  #419 (permalink)  
Старый 06.12.2013, 19:02
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от kobezzza
Представь ситуацию: у тя есть блок, он дёргает аяксом данные, запрос бежит, а в этот момент юзер к примеру переходит на другую страницу (а у нас сингл пейдж апликейшн), т.е. блок был удалён, но его запрос никто не отменил и более того, когда сервер ответит он будет вызывать обработчики внутри мёртвого блока.
я по событию "смена_маршрута" очищял
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #420 (permalink)  
Старый 06.12.2013, 19:07
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от nerv_ Посмотреть сообщение
я по событию "смена_маршрута" очищял
Ещё раз: везде где есть ручная очистка памяти всегда будут баги на этой почве Сборщики мусора ведь не спроста придумали. Поэтому нужно автоматизировать этот момент до того состояния, чтобы даже не думать об этом. К тому же если мы развиваем концепцию "виджетов", то любой виджет должен иметь возможность быть удалённым в любой момент времени и при этом ничего не должен сломать, иначе нет смысла вообще во всех этих виджетах.
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 06.12.2013 в 19:12.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск плагина Менеджер картинок serhio11 jQuery 2 27.01.2014 15:43
Автопереключатель картинок Vempel Общие вопросы Javascript 0 03.10.2013 18:36
Смишных видео с намеком тред godofjavascript Оффтопик 4 30.12.2012 23:50
Одинаковая высота картинок Irina13 Javascript под браузер 15 29.02.2012 12:06
Загрузчик картинок Livanderiaamarum Общие вопросы Javascript 1 15.01.2012 17:21