Pull to refresh
-2
0
DenVdmj @DenVdmj

Пользователь

Send message
Не слушайте дураков. Оставьте «best practice», верните «bottleneck», и другие англицизмы, давно и прочно вошедшие в жаргон айтишников.
ctx.f = ctx.fillRect;
ctx.__defineSetter__(«s», function (arg) { this.fillStyle = arg })

ctx.s = 'green';
ctx.f(5, 5, 25, 25);
Оперы 9.5 и 10 отдают файлы с Content-Type: multipart/form-data;. Но беда с php имеется. Может поясните как надо понимать фразу:

К сожалению, «Опера» (ещё с версии 3.5) отправляет, в этом случае, запрос в формате «multipart/mixed», который PHP не понимает.
Точно, сам прошляпил )), вот оно habrahabr.ru/blogs/opera/68611/#habracut
Обновил оперу на десятку-релиз. А статьи на хабре все нет.
«Опасаясь возможной утраты товарного знака, Google не одобряет использование глагола google, особенно когда подразумевается поиск в Интернете вообще»
ru.wikipedia.org/wiki/Google_(глагол)
Вот-вот. Так же поиск по названиям игр (к примеру Arma). 10 страниц пролистал, и все скрины из одной игрушки. Сложно поверить что у нее такая уникальная палитра (а больше ничего общего в изображениях и нет).
И всем возрадовавшимся «заоптимизацированным» :visible/:hidden думаю будет полезно ознакомиться с этой ссылкой ))
Кстати, я как то в порядке эксперимента пробовал устанавливать временные styleSheets для поиска по css-селектору, в лоб это работало очень медленно, но может это будет хорошим способом узнать актуальность выборки из кэша:

(function (){

    var css = CSS.add(), // закроссбраузенный элемент коллекции document.styleSheets
        defaultView = document.defaultView;

    var isActualNodeBySelector = function (selectorFromCache, nodeFromCache) {
        css.insertRule('*{cursor:default}', 0);
        css.insertRule(selectorFromCache + '{cursor:crosshair}', 0);
        if (( defaultView ?
                defaultView.getComputedStyle(nodeFromCache, null) :
                node.currentStyle
            )['cursor'] == 'crosshair'
        ) {
            // .......... выборка из кэша актуальна
        }
        css.deleteRule(0);
        css.deleteRule(1);
    }
})()
Раз уж вы «такты» считаете, можно убрать регулярку для ие в поиске по имениКласса.
то есть заменить вот это:

     klass = new RegExp('(^| +)' + klass + '($| +)');
     var nodes = root.getElementsByTagName('*'),
         i = 0,
         node;
     while (node = nodes[i++]) {
         if (klass.test(node.className)) {
             sets[idx++] = node;
         }
     }

вот на такое:

     klass = ' ' + klass + ' ';
     var nodes = root.getElementsByTagName('*'),
         i = 0,
         node;
     while (node = nodes[i++]) {
         if ((' ' + node.className + ' ').indexOf(klass)) {
             sets[idx++] = node;
         }
     }
в теории — медленнее, так как 0 !== false
смешно все это ))
======
В ходе работы появилась ситуация, которая требует динамического создания canvas’а. К сожалению, что-то типа document.createElement(‘canvas’); отказывалось работать в IE. И при вызове функции getContent, происходила ошибка.
======
Если скрипт, о котором идет речь, это excanvas.js от товарищей Emil A Eklund, Erik Arvidsson, Glen Murphy, то все что нужно сделать чтобы динамически созданные canvas заработали — это выполнить инициализацию: G_vmlCanvasManager.initElement
напирмер так:
=========
var cnv = document.createElement('canvas')
document.getElementById('container').appendChild(cnv)
G_vmlCanvasManager.initElement(cnv)
=========
обязательно воткните свежесозданный нод canvas в дерево — для работы initElement нужен родитель элемента.

>>Также стоит отметить, что разработчики наконец решили
>> отказаться от packed версии, которая, хоть и весит меньше,
>> но жутко тормозит…

jquery-1.3-release.zip включает:
jquery.js
jquery.lite.js
jquery.min.js
jquery.pack.js
alert(
[7, «13», «5», 6].sort()
)
Убивают отдельные идеи отдавать аяксом сверстанный html в веб-приложении. К примеру клиент просит сервер удалить файл, какой html должен вернуть сервер? Такой:
<b>Да, я его удалил!</b>
А в случае неудачи такой:?
<b>этот гребаный файл не удаляется, потому что он занят другим приложением!</b>
А клиент, допустим, в зависимости от полученного ответа должен поступать по разному, и теперь чтобы понять был ли выполнен запрос ему надо распарсить этот html!
Или к примеру файловый менеджер, сервер отдает ему список файлов в виде таблицы со стоблцами «имя», «размер», «аттрибуты», и т.д. И теперь чтобы сделать нормальный кастомайзинг представления надо опять парсить html!
строку
header('Content-type: text/javascript; charset: UTF-8');
заметить на
header('Content-Type: text/javascript; charset=UTF-8');

// кавычки заменил на одинарные, над двойными хабр надругался.
// rfc 2068 (14.18 Content-Type)

спасибо за статью ))

второй алгоритм выбора окончаний можно переписать в функу:

use strict;

{
my @formMatrix = (2, 0, 1, 1, 1, 2, 2, 2, 2, 2);
sub xform { @_[$formMatrix[(shift)%10]] }
}

for my $num (0… 123) { printf "$num %s\n", xform ($num, «яблоко», «яблока», «яблок») }
Имо, главная проблема в том что не указан тип который должна возвращать функа. Модные языки расхолащивают разрабов в этом отношении, и ползут баги. Функа непонятно что делает — если она проверяет является ли вход страной — должна возвращать Boolean, если индекс страны — Number, и конкретно -1 в failed случае.
@lahmatiy
"Но это проще к сожалению не будет работать в IE (не понимает он отрицательных значений для substr)"
Для slice понимает. замените на slice и используйте тотже код, мне очень нравится этот прием форматирования чисел ))

[
('0'+dt.getDate()).slice(-2),
('0'+(dt.getMonth()+1)).slice(-2),
dt.getFullYear()
].join('.')
Примерно так:
body{
/*
Устраняет дрожание псевдо-fixed (через top:expression) блоков в IE
(c) Воронежский, (c) Васильчиков
http://www.artlebedev.ru/tools/technogrette/html/fixed_in_msie/
*/
_background:url('_') no-repeat fixed;
}

#fix {
position:fixed;
_position:absolute; /* IE псевдо-fixed хак */
_top:expression( (document).body.scrollTop + 10 );
}

Information

Rating
Does not participate
Location
Россия
Registered
Activity