Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 25.10.2012, 16:31
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Сообщение от melky Посмотреть сообщение
при удалении со страницы ссылка на элемент остаётся -> он не убирается сборщиком мусора -> утечка памяти.
это я понимаю и поэтому :
-нужен элемент обращаемся к нему через hash
-удаляем его со страници
-удаляем с хэша
все правильно?
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #12 (permalink)  
Старый 25.10.2012, 16:49
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от cyber
все правильно?
ровно до того момента, как кто-то удалит элемент не через сеттер, который снесёт кэш \ хэш, а через низкоуровневые методы, которые поставляются с DOM.
Ответить с цитированием
  #13 (permalink)  
Старый 25.10.2012, 16:53
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

melky,
в данный момент это проблем не вызывает пока пишешь один=)
нужно будет как попробывать переписать через prototype методы удаления из дом(я понимаю что такого лучше не делать но все же).
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #14 (permalink)  
Старый 25.10.2012, 20:01
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

вот как замутил
var CacheOperat = {



        Add: function (selcector,name) {


            cache[name] = document.querySelectorAll(selector);
        },

        remove:function (name) {
    
            var rem = cache[name];
            rem.parentNode.removeChild(rem);
            cache[name] = null;
        
        }


    };
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #15 (permalink)  
Старый 25.10.2012, 20:37
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от Дзен-трансгуманист
Будь добр, скажи это еще раз - для меня. И я начну его мусолить как только появится время.
я тоже собирался "начать" в течение 3х месяцев но наткнулся на конкурс, где надо сделать игруху на канвасе, и я решил научиться этому мастерству.

главное - цель иметь. если бы я не пытался сделать на нём эту игру, фиг бы у меня что получилось - эти кружочки, квадратики рисовать очень скучно.
Ответить с цитированием
  #16 (permalink)  
Старый 25.10.2012, 20:42
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Кстати нашел книгу на канве вроде норм(на англ), если есть желающие могу выложить.
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #17 (permalink)  
Старый 25.10.2012, 20:42
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Сообщение от melky Посмотреть сообщение
главное - цель иметь. если бы я не пытался сделать на нём эту игру, фиг бы у меня что получилось - эти кружочки, квадратики рисовать очень скучно.
У меня цель добровольно принудительная=)
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #18 (permalink)  
Старый 25.10.2012, 21:06
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Сообщение от Дзен-трансгуманист Посмотреть сообщение
querySelectorAll возвращает NodeList, поэтому удалять нужно через цикл по индексам.
эм..
<!DOCTYPE HTML>
<html>
  <head> </head>
  <body>

    <div>  </div>
      <div>  </div>
      <div>  </div>
      <div>  </div>
      <div>  </div>  <div>  </div>
      <div>  </div>
    
    <script>

 var cache = [];
      
   cache["div"] = document.querySelectorAll("div");
      
   alert( cache["div"]);
      
  cache["div"] = null;
   alert( cache["div"]);
   
    </script>

  </body>
</html>
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #19 (permalink)  
Старый 25.10.2012, 21:35
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Сообщение от Дзен-трансгуманист Посмотреть сообщение
cyber,
Да нет же.))

var CacheOperat = {

  add: function (selector, name) {

    return !cache.hasOwnProperty(name)?
      (cache[name] = document.querySelectorAll(selector)): null;
  },

  remove: function (name) {

    if (cache.hasOwnProperty(name)) {

      var rem = cache[name], i;
      for (i in rem) {
        rem[i].parentNode.removeChild(rem[i]);
      }
      delete cache[name];
    }
  }
};
вот блин, точно, лоханулся=)
пора забивать на седня и идти пить пиво=)
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #20 (permalink)  
Старый 25.10.2012, 22:01
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

переделал вот так
function CacheObj(){



        this.Add = function (selcector, name) {


            cache[name] = document.querySelectorAll(selector);
        }
        

       this.remove = function (name) {
    
           var removeElems = cache[name];

            removeElems.eache(function () {// each - метод добавленный через прототип 

                this.parentNode.removeChild(this);
            });

           delete cache[name] ;
        
        }


    };
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
После Добавления в Дом, не работает клик. KamalovRadik jQuery 2 02.11.2011 10:32
Дом each(). Помогите разобраться Alex_WA jQuery 4 06.11.2010 13:47
html-комментарии и дом Snipe Events/DOM/Window 7 22.06.2010 08:57
Расширение прототипов встроенных обьектов: хорошо или плохо? hogart Общие вопросы Javascript 51 14.08.2009 11:56