Если мне не изменяет память, в ECMAScript вообще не определен алгоритм работы сборщика мусора, потому все зависит от конечной реализации.
А что касается IE, то до восьмой версии сборщик хоть и работал по принципу mark&sweep, а значит, был способен чистить циклические ссылки, но из-за особенностей работы COM (в котором используется подсчет ссылок) наличие ссылок в expando DOM-элемента на объекты скриптового движка в одном замыкании с объектами, ссылающимися на этот DOM-элемент приводило к таким неразрешимым случаям.
Фигня. И хром, и фф, и опера, и эксплорер версий 8+ нормально с такими утечками справляются.
Ну и для того, чтоб избавиться от них, не надо выносить обработчик наружу, можно в замыкании ссылку на элемент прибить:
function foo(element, a, b) {
element.onclick = function() { /* использует a и b */ };
element = null;
}
Вообще-то приватные свойства для того и приватные, чтоб на них не завязываться. В следующей версии библиотеки уберут этот массив — и пользовательский код, который рассчитывал на него, перестанет работать. О том, что этот массив убран, никто не узнает до момента возникновения ошибки (потому как разработчик справедливо полагает, что его никто не использует, потому такие изменения не анонсирует).
В этой ситуации (если уж точно никак без доступа к этому массиву не обойтись) я бы форкнул jQuery, и дописал бы нужный мне функционал там, тогда при обновлении версии в результате мерджа были бы видны изменения, которые это затрагивают.
Ну а как я пополняю, по вашему, эту карту и счет оператора? Я же говорю, операция пополнения (ну или изменения лимита, не важно) сравнима по времени с пополнением счета оператора. Это не значит, что каждая из них занимает годы (хотя и не секунду точно), просто одна операция удобнее двух, а для покупок мобильного софта средств на счете оператора обычно более чем достаточно.
В общем, мысль такая: я не против карт, просто уже есть счет, предназначенный для микроплатежей (счет оператора), так зачем добавлять еще один (допустим, карту с маленьким лимитом)?
Мне лично счет от оператора удобнее, чем оплата кредиткой.
Данные кредитки, куда перечисляют зарплату, мне очень стремно давать кому-либо, потому для оплаты у меня есть отдельная карта. Пополнение этой карты — достаточно неудобная операция, она занимает относительно много времени (сравнимо с пополнением счета у оператора), так что пополнять ее каждый раз для мелких платежей в 1-2-5 долларов неудобно. Вариант один: пополнять эту карту раз в месяц на некоторую небольшую сумму. То есть мне, если нет возможности оплачивать со счета оператора, надо замораживать каждый месяц в два раза больше денег, и пополнять два счета вместо одного.
На самом деле, SEO — попытка подогнать некий нужный результат под параметры поиска, что уже само по себе плохо.
Результат коммерческого поиска вообще не получится нормально отранжировать, потому как исходных данных (которые используют в текущих SE) не хватит — при коммерческом поиске интересно не содержание сайта, а надежность поставщика и реальный уровень его цен. Но стараясь вывести запрос в топ по запросу «пластиковые окна», портят выдачу по «где лучше в москве купить пластиковые окна» (по второму я не сайты ищу, а скорее обсуждения/форумы и прочее).
Большое количество денег в рекламном бюджете зачастую означает, что на остальном очень сильно экономят.
А как должна выглядеть «правильная» выдача для, скажем, запроса «купить кондиционер»? Почему этот сайт должен быть на первом месте, а другой — на сотом?
С точки зрения меня, как пользователя, компания, которая максимально быстро, качественно и дешево установит именно тот кондиционер, который мне нужен, должна быть первой. Только вот на основании данных, которыми сейчас оперируют поисковики, определить эту компанию не представляется возможным, и в выдаче нужные мне характеристики достаточно рандомно распределены. Единственный параметр, который достаточно сильно коррелирует с «релевантностью» — количество денег в рекламном бюджете.
А вот, например, возьмем другой запрос: «кондиционер купить дешево». Неужели на первом месте будет компания, продающая самые дешевые кондиционеры на рынке? Первая ссылка на евромакс, и там первый кондей LG S09PT. В выдаче на маркете по этому кондею, например, евромакс даже не на первой странице.
А вот запрос «подскажите, где лучше всего купить кондиционер?» — goo.gl/i1XJf
Это что, адекватная выдача?
В общем, по коммерческим запросам выдача была бы как минимум одинаково неадекватна, как при наличии сеошников, так и без них — просто по причине отсутствия необходимых данных. А по отдельным запросам без сеошников было бы лучше.
Это говорит о том, что не надо продвигать сайты, продающие кондиционеры в поисковиках, потому как там нет адекватных механизмов определения качества таких сайтов. Есть же market.yandex.ru или price.ru — там и надо кондиционеры двигать.
Эмм, по-моему, сравнение ЯП «дарт» и «яваскрипт» вообще есть только в пункте с классами, типизированными функциями и изменением кода в рантайме, а все остальное больше тянет на сравнение стандартной библиотеки и DOM API.
Только честно, как часто используете в разговорной речи future perfect хотя бы?
В большинстве случаев и правда простых времен хватит. Можно, конечно, вспомнить классические примеры future perfect типа «мы переведем статью к пятнице», но они обычно легко переводятся в future simple как «мы закончим перевод статьи в пятницу», или даже в настоящее — «мы собираемся закончить перевод статьи к пятнице». Тонкости смысла имеются, но в реальном разговоре это не имеет большого значения, зато учить меньше, проще запомнить и проще начать строить предложения (из 9 вариантов или из 26 выбирать — разница есть?), быстрее можно начать непосредственно общаться — а это добавляет мотивации к дальнейшему изучению.
Если говорить общими фразами «скопировал» и «увел половину рынка» — то, конечно, недовольство выглядит логичным. Но вот какое дело, увод половины рынка происходит не просто так, а в следствии определенных причин, таких, как нежелание совершенствоваться, негибкая ценовая политика, отвратное отношение к клиентам и прочее. В случае же динамично развивающейся компании, чутко реагирующей на рынок, отжатие сколь-либо значительной доли потребует очень серьезных затрат — сравните хотя бы фейсбук и вконтакт.
А что касается IE, то до восьмой версии сборщик хоть и работал по принципу mark&sweep, а значит, был способен чистить циклические ссылки, но из-за особенностей работы COM (в котором используется подсчет ссылок) наличие ссылок в expando DOM-элемента на объекты скриптового движка в одном замыкании с объектами, ссылающимися на этот DOM-элемент приводило к таким неразрешимым случаям.
Ну и для того, чтоб избавиться от них, не надо выносить обработчик наружу, можно в замыкании ссылку на элемент прибить:
Да куда угодно — гитхаб, pastebin, хоть на почту мне (в личку отправил).
www.youtube.com/watch?v=oOlDewpCfZQ
В этой ситуации (если уж точно никак без доступа к этому массиву не обойтись) я бы форкнул jQuery, и дописал бы нужный мне функционал там, тогда при обновлении версии в результате мерджа были бы видны изменения, которые это затрагивают.
В общем, мысль такая: я не против карт, просто уже есть счет, предназначенный для микроплатежей (счет оператора), так зачем добавлять еще один (допустим, карту с маленьким лимитом)?
Данные кредитки, куда перечисляют зарплату, мне очень стремно давать кому-либо, потому для оплаты у меня есть отдельная карта. Пополнение этой карты — достаточно неудобная операция, она занимает относительно много времени (сравнимо с пополнением счета у оператора), так что пополнять ее каждый раз для мелких платежей в 1-2-5 долларов неудобно. Вариант один: пополнять эту карту раз в месяц на некоторую небольшую сумму. То есть мне, если нет возможности оплачивать со счета оператора, надо замораживать каждый месяц в два раза больше денег, и пополнять два счета вместо одного.
Результат коммерческого поиска вообще не получится нормально отранжировать, потому как исходных данных (которые используют в текущих SE) не хватит — при коммерческом поиске интересно не содержание сайта, а надежность поставщика и реальный уровень его цен. Но стараясь вывести запрос в топ по запросу «пластиковые окна», портят выдачу по «где лучше в москве купить пластиковые окна» (по второму я не сайты ищу, а скорее обсуждения/форумы и прочее).
Большое количество денег в рекламном бюджете зачастую означает, что на остальном очень сильно экономят.
С точки зрения меня, как пользователя, компания, которая максимально быстро, качественно и дешево установит именно тот кондиционер, который мне нужен, должна быть первой. Только вот на основании данных, которыми сейчас оперируют поисковики, определить эту компанию не представляется возможным, и в выдаче нужные мне характеристики достаточно рандомно распределены. Единственный параметр, который достаточно сильно коррелирует с «релевантностью» — количество денег в рекламном бюджете.
А вот, например, возьмем другой запрос: «кондиционер купить дешево». Неужели на первом месте будет компания, продающая самые дешевые кондиционеры на рынке? Первая ссылка на евромакс, и там первый кондей LG S09PT. В выдаче на маркете по этому кондею, например, евромакс даже не на первой странице.
А вот запрос «подскажите, где лучше всего купить кондиционер?» — goo.gl/i1XJf
Это что, адекватная выдача?
В общем, по коммерческим запросам выдача была бы как минимум одинаково неадекватна, как при наличии сеошников, так и без них — просто по причине отсутствия необходимых данных. А по отдельным запросам без сеошников было бы лучше.
— продающие кондиционеры в поисковиках,
+ продающие кондиционеры, в поисковиках,
[/fix]
В большинстве случаев и правда простых времен хватит. Можно, конечно, вспомнить классические примеры future perfect типа «мы переведем статью к пятнице», но они обычно легко переводятся в future simple как «мы закончим перевод статьи в пятницу», или даже в настоящее — «мы собираемся закончить перевод статьи к пятнице». Тонкости смысла имеются, но в реальном разговоре это не имеет большого значения, зато учить меньше, проще запомнить и проще начать строить предложения (из 9 вариантов или из 26 выбирать — разница есть?), быстрее можно начать непосредственно общаться — а это добавляет мотивации к дальнейшему изучению.