Pull to refresh
-3
0
Александр @mx2000

User

Send message
_ | 0 1
=====
0 | 0 1
1 | 1 0

таки 2x2
А схема не катит? В частности ypsilon.
Ну если так хочется, ловите. Disclaimer: многа букаф ;-)
=======================================

Открываем fullajax.ru/temp/asyncjs/fullajax1.html и лезем в Firebug. Оппа! У window появился ряд новых свойств, в том числе:
SRAX (ну это понятно, точка входа),
a (это что?),
abort, abortData, arrayIndexOf, arrayRemoveOf, dax, error, get, getData, getInterface, go, hax, id, info, log, post, postData, warn.

Кроме этого, Firebug ябедничает, что некоторые функции не всегда возвращают значение, есть ряд undeclared variables и ряд undefined property.

Теперь заглянем в код. Качаем архив с сырцами и открываем fullajax.js.
Таакс… Хорошо… Хорошо… оппа, модификация String.prototype — кто разрешил?

String.prototype.trim() = ресурсоемкое решение.

String.prototype.replaceAll() = элегантно!

String.prototype.endWith() = борщ! + можно сделать эффективнее.

hax():
if (options.nohistory == null) options.nohistory = options.noHistory; // это типа для обратной совместимости? ;-)

get() — в условии if — ошибка, можно написать это с одним return.

post() — копипаст с get().

dax() — копипаст с hax().

SRAX.extend():
var overwrite = !skipexist; // прикольно звучит, да?

===================
SRAX.init():
— var n = 'addEventsListener';

$[n]($.HTMLThread);
$[n]($.History);
$[n]($.DATAThread);

// конструкция интересная, но наводит на мысль о незнании или непонимании автором концепции замыканий.

document._write = document.write;
document._writeln = document.writeln;

// пфф… опять таки, кто разрешил лезть в document?

===================

$.Default.initCPLNLS() = копипаст с $.Default.initCPLNLL()

IE_XHR_ENGINE: ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP'] = зачем это в таком явном виде? Завтра ожидается новый XMLHTTP от MS?

delHost() = лишний if, лишнее присваивание

paintHtml(), paintHtml2() == когда будет paintHtml3()?

===================
DATAThread(), HTMLThread()
— 1. Копипаст в 200+ строчек!!!

2. _this = this. // Так и есть, автор не умеет пользоваться замыканиями. А все потому что Java.

3. борщ в коде, например:

if (!options.url && options.src) options.url = options.src;
if (!options.cb && options.callback) options.cb = options.callback;
if (options.cbo == null && options.callbackOps != null) options.cbo = options.callbackOps;
if (options.anticache == null && options.nocache != null) options.anticache = options.nocache;
if (overwrite) ops = {};
$.extend(ops, options);
if (ops.async == null) ops.async = true;
ops.url = $.delHost(ops.url);
this.options = ops;
return _this;

===================

Дальше смотреть не стал — зрение дороже. Код абсолютно нечитабелен, приватные по смыслу свойства и методы торчат снаружи SRAX и даже в window — кто не спрятался, я не виноват!

Резюме: курсовая работа студента 3-го курса. Выполнена на крепкую троечку, не более того. ;-)

Аналогичная фигня. Каким-то чудом я умудрился проработать в IT 10 лет, ни разу не столкнувшись с сабжем. ЧЯДНТ?!
На одном железе далеко не уедешь. Как показывает практика, правило «плюс один сервер» без надлежащей программной прослойки работает в очень узком диапазоне.
То есть, получается, самым медленным процессом в данном случае является поиск и обертка DOM-элемента? «за что боролись, на то и напоролись»?
Даешь морской бой! ;-)

P.S. ping == pause?
Ужас-ужас.
Программисты на Схеме покрутили пальцем у виска :)
В настоящих дзеновских дистрибутивах GNU/Linux ядро не включается в официальные репозитории :P
> Упаковка в один файл и gzip никак не противоречат асинхронной загрузке, а наоборот ее улучшают как и в простом случае.

То есть вы хотите сказать, что в браузере загрузка N файлов в M потоков в рамках одного домена выгоднее загрузки 1 файла в один поток? Вы действительно так думаете?

> если вам что-то не понятно в коде, это не значит что это неправильно.

Вас публично ткнуть в ваш же код, чтобы вам стыдно стало?

> вы не поняли цель статьи

Цель статьи, как и проекта лежит на ладони — попытка пиара на теме сомнительной ценности с ужасным качеством реализации. Надо быть слепым чтобы не увидеть messages вашего сайта: «Смотрите, какие мы молодцы! Мы профи! Мы уникальны! Купите нас скорее!»

а Javascript включен?
Верстают под IE6, потому что есть пользователи IE6, которые существуют, потому что есть сайты, которые работают под IE6. Кто-то должен сделать break в этом infinitive loop, за что иконзе респект и уважуха.
Вообщем, у библиотеки есть две проблемы:

1) применимость строго в рамках домена страницы (потому как XHR aka AJAX) — соответственно ценность асинхронной загрузки JS снижается, поскольку все используемые JS можно упаковать в один файл, пройтись yuicompressor и включить gzip на сервере. Точка.

2) руки авторов. Глянул в код — первые 100 строчек хорошо, а дальше — тихий ужас. Использовать такое в коммерческих проектах — большой риск. Чувствуется опыт программирования в PHP и отсутствие опыта программирования в JS.

А вцелом, продолжайте. Может что-то и вырастет из этого начинания ;-)
«В месте, где выводится форма логина добавляем старт сессии, ибо здесь уже надо» — всегда думал, что сессию нужно открывать ПОСЛЕ успешного логина.)
под вайном быстрее. по крайней мере три окна линейки ;-)
Это я про «можно очень дешево».
translate.google.com/

Для бука удобнее юзать NASы, нежели USB/FW веники, требующие внешнего питания.
ab -n 10000 -c 10 localhost:8080/

WTK C++: 12803.02 r/s
Scheme: 9957.43 r/s

Забавно, при увеличении числа конкурентных запросов, ваш пример HelloWorld начинает затыкаться, вероятно на моменте уничтожения тредов:

Percentage of the requests served within a certain time (ms)
50% 1
66% 1
75% 1
80% 1
90% 1
95% 19
98% 21
99% 21
100% 2106 (longest request)

Поэтому бенчмарк со 100 конкурентами можно считать невалидным. Но пул тредов определенно нужен.
нет, к компилятору схемы

Information

Rating
Does not participate
Location
Ancoa, Maule, Чили
Date of birth
Registered
Activity