25.10.2012, 16:31
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
Сообщение от melky
|
при удалении со страницы ссылка на элемент остаётся -> он не убирается сборщиком мусора -> утечка памяти.
|
это я понимаю и поэтому :
-нужен элемент обращаемся к нему через hash
-удаляем его со страници
-удаляем с хэша
все правильно?
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
25.10.2012, 16:49
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
Сообщение от cyber
|
все правильно?
|
ровно до того момента, как кто-то удалит элемент не через сеттер, который снесёт кэш \ хэш, а через низкоуровневые методы, которые поставляются с DOM.
|
|
25.10.2012, 16:53
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
melky,
в данный момент это проблем не вызывает пока пишешь один=)
нужно будет как попробывать переписать через prototype методы удаления из дом(я понимаю что такого лучше не делать но все же ).
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
25.10.2012, 20:01
|
|
I am Student
|
|
Регистрация: 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;
}
};
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
25.10.2012, 20:37
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
Сообщение от Дзен-трансгуманист
|
Будь добр, скажи это еще раз - для меня. И я начну его мусолить как только появится время.
|
я тоже собирался "начать" в течение 3х месяцев но наткнулся на конкурс, где надо сделать игруху на канвасе, и я решил научиться этому мастерству.
главное - цель иметь. если бы я не пытался сделать на нём эту игру, фиг бы у меня что получилось - эти кружочки, квадратики рисовать очень скучно.
|
|
25.10.2012, 20:42
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
Кстати нашел книгу на канве вроде норм(на англ), если есть желающие могу выложить.
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
25.10.2012, 20:42
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
Сообщение от melky
|
главное - цель иметь. если бы я не пытался сделать на нём эту игру, фиг бы у меня что получилось - эти кружочки, квадратики рисовать очень скучно.
|
У меня цель добровольно принудительная=)
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
25.10.2012, 21:06
|
|
I am Student
|
|
Регистрация: 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>
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
25.10.2012, 21:35
|
|
I am Student
|
|
Регистрация: 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];
}
}
};
|
вот блин, точно, лоханулся=)
пора забивать на седня и идти пить пиво=)
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
25.10.2012, 22:01
|
|
I am Student
|
|
Регистрация: 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] ;
}
};
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
|
|