Pull to refresh
26
0
Maksim @MuLLtiQ

Software engineer

Send message
А с какой целью подобное может пригодиться?
Без таймаута идея не особо-то и нужна — можно и «ручками» в local- и sessionStorage объект загнать
Вот теперь хорошо. Можно как вариант у ObjectStorage сделать метод destroy, который уничтожает таймаут и убирает экземпляр из инстансов.
Про unload торжественно забыл :)

Исправленная паста: pastebin.com/Rye1T0Jr
Нет, обычный плоский JS-объект :)

Набросал код на скорую руку:
pastebin.com/yAkqVK5Q
function someTest() {
    // ...

    // Здесь в конструкторе ObjectStorage создался таймер -->
    var storage = new ObjectStorage("someStorage");
    
    
    // ...

    // Функция закончила своё действие, ссылка на storage 
    // потеряна, а таймер живёт, да и сборщик мусора объект
    // не убьет
}

function someTest2() {
    // ...

    // То же самое, что и в someTest
    var storage = new ObjectStorage("someStorage");

    // ...
}

someTest();
someTest2();


В итоге после вызова someTest и someTest2 будут крутится два потерянных таймера. И так каждый раз при создании экземпляра ObjectStorage.
Таймер не остановится если в коде потеряется ссылка на экземпляр ObjectStorage. Может вместо плоского типа сделать что-то вроде менеджера?
На самом деле, между C# и PHP не такая уж и разница в плане изучения. Это как с иностранными языками: знаете английский, изучать, например, немецкий или голландский будет куда легче. А вот, к примеру, Lisp или Haskell — будет изучать всё так же сложно (это как японский :)) — там парадигма другая, и требует другой модели мышления.
Я тоже ВМ-ку оканчивал. Главное что мне дало образование — умение шевелить мозгами. Все навыки приобрёл (и приобретаю) чтением манулов, доков, блогов и большим количеством практики. Я думаю, что профессионалом делает не спецобразование (хотя оно, бесспорно, очень помогает), а именно желание изучать, разбираться и применять на практике.
12 ...
27

Information

Rating
Does not participate
Date of birth
Registered
Activity