Pull to refresh
55
0
Саша Сафронов @safron

User

Send message
Плохо выглядит, когда повсеместно применяется к стандартным функциям (что, кстати, не обязательно):
if (\count($err)) {};

А в остальном вроде ничего:
self::prepare(new Package\Dependency($dep, $package, false, true));

Зато можно визуально легко различать, двойное двоеточие было бы хуже.
Ну вот я на скорую руку сделал отладочные сообщения по аналогии с теми, что в топике, и как-то не до конца разобрался, что и в какой момент происходит (видимо, надо побольше поэкспериментировать). Получилось так, что какя-то часть объектов удаляется уже после shutdown, а если после unset() вызавть gc_collect_cycles(), то удаляются все сразу. И вот я не понял, то ли gc_collect_cycles() вызывает и обычный сборщик мусора тоже, то ли все же считает эти ссылки циклическими.
случайно ответил не в ту ветвь, смотрите ответ ниже, плиз.
В объекте C, кстати, тоже есть ссылка на B (об этом я уже не стал упоминать). А нужно это по двум причинам: первая, это (по аналогии опять же с jQuery), чтоб можно было вернуться к предыдущему состоянию цепочки, например:

$('#myElement').find('li').addClass('myClass').end().find('p').addClass('myAnotherClass');

а вторая, это то, что резульат вызова некоторых методов должен зависеть от того, что было в предыдущем по цепочке объекте.
А подскажите, пож-та (обращаюсь к автору топика, или кому-нибудь хорошо разбирающемуся в предмете), как будет происходить освобождение ресурсов в след. ситуации.
У меня есть некий класс, который представляет из себя цепочку (наподобии jQuery), т.е. в резльтате вызова одного из методов возвращается новый объект этого же класса, который имеет ссылку на тот объект, что его породил. Допустим у нас есть следующий код:

$C = Chain::create()->method1()->method2();
unset($C);


в первой строке создается объект A, после вызова method1() возвращается объект B, хранящий ссылку на A, на объекте B вызывается method2(), который возвращает объект C.
Так вот вопрос в том, происходит ли после удаления объекта C, удаление всех предыдущих объектов по цепочке в обратную сторону, или с этим также есть трудности? И, если есть, то как можно их обойти?

Спасибо.
Так это и работает прямо в HTML и CSS, без всяких плагинов. Только в новых браузерах. А для старых небольшие костыли, так было, так будет. Впрочем конкретно для этого примера два лишних скриптика включить совсем несложно.
хм, немного пристальней вгляделся в код. Что вы имеете ввиду под «классами»? В любом случае, внутри функции init() у Вас объявляются переменные start, game, ai, player, ball без ключевого слова var. JavaScript, когда встречает такие объявления, делает такие переменные глобальными (если точнее — свойствами объекта window), поэтому все и работает. Но это очень плохой стиль, т.к. мало того, что засоряется глобальное пространство имен, так еще и понять, где что было объявлено потом очень трудно.

Да, да, я понимаю, что это простенький пример и тут и так все понятно, просто советую Вам в более серъезных задачах так не делать.

И, кстати, даже в Вашем примере, уж если без глобальных переменных было не обойтись, то правильно бы было вверху скрипта сделать объявление:

var start, game, ai, player, ball;
вы принципиально не используете ключевое слово «var»?
Лучше поздно, чем никогда :)

Если интересно, то вот jQuery-плагин по мотивам моей статьи, использующий FormData там, где это возможно, и позволяющий управлять очередью загрузок. В самом файле есть описание его использования. Ссылку на работающий пример и кое-какие подробности можно увидеть в UPD той самой статьи.
Теперь там, где это возможно (Safari, Chrome, FF 4+) используется FormData, что позволяет избежать загрузки файлов в память (само собой, если есть цель сэкономить память, не стоит их открывать файлы, чтоб делать превьюшки).
Если интересно, см. апдейт статьи.
Сделано! Если интересно, см. апдейт к статье.
Переписал код так, чтоб где это возможно использовался FormData. Если интересно, см. апдейт внизу статьи.
В каждом топике есть несколько каментов о питоне (сорри, пайтоне!). Даже, казалось бы, совсем не причем он тут. Свет на нем клином сошелся, что-ли?
А у джаваскрипта было же какое-то, если мне не изменяет память? То ли носорог какой-то, то ли еще что-то.
Да, тогда DB desgnr явно не для вас. MySQL Workbench, как верно подметил выше TheMengzor
Это что это вы храните в таких таблицах, где значение ключа может доходить до 264? :)
Я пошел по этому же пути и добавил в свой код использование FormData там, где это возможно. Получилось, наверное, почти как у вас. Тока я еще в jQuery-плагин все это завернул.

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity