Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Search found 53 matches
Author Message
  Topic: перетасовка элементов массива без цикла
K.Wiolowan

Replies: 6
Views: 18200

PostForum: Склад готовых решений :: JavaScript   Posted: Thu Apr 21, 2011 2:50 pm   Subject: перетасовка элементов массива без цикла
Проверил функции из-под Firebug (в закладке "Наблюдение") - ужаснулся: рандомизация неравномерна, особенно в конце массива, типа такой:

990 761
991 565
992 762
993 567
994 564
995 763
996 765
997 767
998 764
999 766
.
Хотел уже написать на форум, но перепроверил на отдельной HTML-странице, все работает ОК:
969, 616, 414, 756, 959, 489, 373, 82, 911, 69, 903, 594, 948, 863, 124, 862, 47, 241, 276, 155, 636, 365, 797, 974, 889, 90, 957, 101, 460, 54, 170, 432, 865, 648, 887, 100, 342, 463, 540, 214, 299, 228, 12, 823, 995, 615, 853, 233, 418, 971, 273, 938, 484, 816, 485, 992, 859, 409, 408, 926, 429, 327, 216, 94, 105, 578, 158, 125, 633, 34, 894, 898, 851, 605, 567, 338, 528, 849, 965, 477, 506, 891, 361, 530, 800, 280, 357, 652, 927, 559, 417, 535, 989, 252, 6, 77, 688, 632, 5, 760, 824, 156, 864, 819, 919, 308, 474, 641, 629, 439, 592, 60, 493, 695, 882, 685, 347, 523, 896, 26, 189, 310, 355, 883, 501, 486, 970, 498, 930, 946, 452, 978, 248, 36, 312, 403, 846 ...
  Topic: onIdle
K.Wiolowan

Replies: 5
Views: 14646

PostForum: Склад готовых решений :: JavaScript   Posted: Fri Sep 18, 2009 1:52 pm   Subject: onIdle
[url=http://paulirish.com/demo/idle-timer?comment=]jQuery idleTimer plugin
  Topic: onIdle
K.Wiolowan

Replies: 5
Views: 14646

PostForum: Склад готовых решений :: JavaScript   Posted: Thu Aug 20, 2009 12:12 pm   Subject: onIdle
Назначение и смысл названия переменных lag, repeat? Может быть стоит ограничиться одним lag, имя которому timeout?

lag - это начальная задержка между последним действием пользователя и активизацией idle-задачи, default= 500 ms
repeat - это интервал между завершением (порции) idle-задачи, и новой idle-задачей, в течение которого у пользователя есть возможность перехватить управление на себя. default = 100 ms.
Необходимо так выставлять lag, repeat, а тж. квантировать idle-задачу, чтобы не нервировать пользователя "заморозкой" браузера. В качестве примера "тупой" комбинации:
lag=repeat=100 ms, продолжительность кванта idle-задачи - 10 сек.

ИМХО, чем более ресурсоемка фоновая задача, тем бОльший лаг должен определяться в onIdle.

В идеале, конечно, хорошо бы фоновые задачи определять через worker threads, но это под силу пока только Firefox 3.5, Chrome и сайтам с установленным Google Gears
  Topic: В контексте чего живет Array?
K.Wiolowan

Replies: 6
Views: 7308

PostForum: Разное :: JavaScript   Posted: Sat May 30, 2009 1:40 am   Subject: В контексте чего живет Array?

alert(window.Array instanceof window.parent.Array ||window.parent.Array instanceof window.Array ||
window.Object instanceof window.parent.Object || window.parent.Object instanceof window.Object ||
window.String instanceof window.parent.String || window.parent.String instanceof window.String ||
window.Number instanceof window.parent.Number || window.parent.Number instanceof window.Number)
// дает false
  Topic: onIdle
K.Wiolowan

Replies: 17
Views: 22338

PostForum: Разное :: JavaScript   Posted: Fri May 29, 2009 11:30 pm   Subject: onIdle
Т.е.,

...
func_busy.apply(/*window,*/ param_busy)
...
var on_busy = function(/*param1, param2*/)
{
document.getElementById('output').innerHTML = 'Ресурсы заняты! Я получила вследующие параметры: ' + param1 + ':' + param2;
}

idleManager.start(on_not_busy, {param1:'йа параметр =)', param2: 'йа второй параметр =))'}, on_busy, {param1: 'йа параметр =)', param2: 'йа второй параметр =))'}, 1000, 200);
  Topic: onIdle
K.Wiolowan

Replies: 17
Views: 22338

PostForum: Разное :: JavaScript   Posted: Fri May 29, 2009 12:27 pm   Subject: onIdle
А вот, к примеру, "Central Timer Control to manage multiple animations" от John Resig

var timers = {
timerID: 0,
timers: [],
start: function(){
if ( this.timerID )
return;
(function(){
for ( var i = 0; i < timers.timers.length; i++ )
if ( timers.timers[i]() === false ) {
timers.timers.splice(i, 1);
i--;
}
timers.timerID = setTimeout( arguments.callee, 0 );
})();
},
stop: function(){
clearTimeout( this.timerID );
this.timerID = 0;
},
add: function(fn){
this.timers.push( fn );
this.start();
}
};

var box = document.getElementById("box"), left = 0, top = 20;
timers.add(function(){ ...
  Topic: onIdle
K.Wiolowan

Replies: 17
Views: 22338

PostForum: Разное :: JavaScript   Posted: Fri May 29, 2009 11:52 am   Subject: onIdle
http://allanguages.info/onidle.html


idleManager = new function(){
var id=null
var func_idle= null
var func_busy= null
var func_stop= null
var lag=500
var repeat=100
var param={}
this.idleWrapper= function(){
return function(){
if (id){
clearTimeout(id);
if(func_busy) func_busy.apply(window, [param]);
}
id = setTimeout(function(){
if(func_idle.apply(window, [param])){
id = setTimeout(arguments.callee, repeat)
}else{
stopIdle()
if(func_stop) func_stop.apply(window, [param]);
}
}, lag);
}
}
this.start= function(_func_idle, _param, _lag, _repeat, _func_busy, _func_stop ) {
func_idle= _func_idle
param= _param || {}
func_busy= _func_ ...
  Topic: onIdle
K.Wiolowan

Replies: 17
Views: 22338

PostForum: Разное :: JavaScript   Posted: Fri May 29, 2009 9:13 am   Subject: onIdle
P.S. нужно еще подумать насчет списка событий, по которым судить о "простое" (window.onload, document.onkeyup - лучше onkeydown?, document.onmousemove, onmousedown? скроллинг?)
-и о совместимости с другими скриптами и библиотеками в вопросах обработки событий...
  Topic: onIdle
K.Wiolowan

Replies: 17
Views: 22338

PostForum: Разное :: JavaScript   Posted: Fri May 29, 2009 8:59 am   Subject: onIdle
хм... Значит оставляем Timeout? Ну хорошо... ;)--Да, и в случае, если повторяемая функция выполняется дольше, чем интервал - тоже могут, насколько я понял, быть проблемы.
Предлагаю сделать второй коллбэк, который будет вызываться когда пользователь начал свою активность...--Да, конечно, причем второй коллбэк может быть и не определен...


var idleManager =
{
id: null,

idleWrapper: function(func, param, func_end, param_end, lag, repeat)
{
--А вот интересно, можно ли сделать так, чтобы param, param_end становились перекрытиями, closures, чтобы func, func_end не передавать их в виде параметров?
Хотя, если передача через лок.параметры быстрее, то нечего и дергаться...

Скоро все это дело разрастется и интерфейс станет сложным, видимо нужно написать все по-другому... (Я наверно к вечеру выложу свой вариант интерфейса библиотеки....)--Было бы интересно взглянуть.
Если Вам удасться проконтролировать onMouseMove в виде установки ...
  Topic: onIdle
K.Wiolowan

Replies: 17
Views: 22338

PostForum: Разное :: JavaScript   Posted: Fri May 29, 2009 7:02 am   Subject: onIdle
K.Wiolowan,
также, устанавливать таймаут при каждом вызове функции коллбэка для таймаута -- не особо оптимально.
Поэтому заменяю setTimeout => setInterval.

--Спасибо, Александр, Вашу версию выложил здесь:
http://allanguages.info/onmousemoveend2.html (цикл idle-фунции 100 000 суммаций)
http://allanguages.info/onmousemoveend3.html (цикл idle-фунции 5 000 000 суммаций)

Все же, setTimeout, ИМХО, надежнее и точнее setInterval: setTimeout(func, 100) гарантирует минимальную паузу в 100 мсек, в то время как в некоторых условиях setInterval(func, 100) может выполняться вообще практически без задержек, если сама func выполняется, скажем, за 99 мсек.
Одним словом, второй параметр в setInterval и setTimeout имеет разные смыслы.

http://ejohn.org/blog/how-javascript-timers-work/ :

Let's take a look at an example to better illustrate the differences between setTimeout and setInterval.

setTimeout(function(){
/* Some long block of code... */
setTimeou ...
  Topic: onIdle
K.Wiolowan

Replies: 17
Views: 22338

PostForum: Разное :: JavaScript   Posted: Wed May 27, 2009 4:18 pm   Subject: onIdle
В качестве частной подзадачи хотелось бы отслеживать "onMouseMoveEnd" без 35-90%-ной загрузки процессора, как у Matt'a.

Включать и отключать onmousemove по setTimeout, что ли...
  Topic: onIdle
K.Wiolowan

Replies: 17
Views: 22338

PostForum: Разное :: JavaScript   Posted: Wed May 27, 2009 4:08 pm   Subject: onIdle
А действительно, можно ли сделать такой маленький фреймворк, чтобы на момент бездействия пользователя делать потихоньку, по частям какую-то свою ресурсоемкую работу - которая в случае выполнения ее при начальной загрузке, надолго бы подвешивала компьютера...

Как-нибудь так (это, конечно, сырая глючная и не универсальная концепция):
http://allanguages.info/onmousemoveend.html


var idleManager ={
id:null,
idleWrapper: function(func,param,lag,repeat) {
lag = lag || 500;
repeat = repeat || 100;
return function() {
if (idleManager.id) {
clearTimeout(idleManager.id);
document.getElementById('output').innerHTML= 'Busy with a user..';
}
idleManager.id = setTimeout(function() {
func(param)
idleManager.id=setTimeout(arguments.callee, repeat)
}, lag);
}
},
start: function(func, param, lag ...
  Topic: SunSpider JavaScript Benchmark
K.Wiolowan

Replies: 10
Views: 13409

PostForum: Разное :: JavaScript   Posted: Sun Nov 16, 2008 3:03 am   Subject: SunSpider JavaScript Benchmark
Firefox 3.1 Beta 1
javascript.options.jit.chrome;true
javascript.options.jit.content;true

Total: 1425.8ms +/- 0.8%
--------------------------------------------

3d: 132.2ms +/- 1.4%
cube: 52.0ms +/- 0.0%
morph: 35.4ms +/- 4.0%
raytrace: 44.8ms +/- 1.2%

access: 183.2ms +/- 1.9%
binary-trees: 44.2ms +/- 1.3%
fannkuch: 89.6ms +/- 1.9%
nbody: 35.2ms +/- 1.6%
nsieve: 14.2ms +/- 16.8%

bitops: 46.0ms +/- 4.7%
3bit-bits-in-byte: 2.0ms +/- 0.0%
bits-in-byte: 10.6ms +/- 10.5%
bitwise-and: 4.2ms +/- 13.2%
nsieve-bits: 29.2ms +/- 5.6%

controlflow: 39.0ms +/- 3.9%
recursive: 39.0ms +/- 3.9%

crypto: 76.4ms +/- 1.5%
aes: ...
  Topic: onMouseMoveEnd
K.Wiolowan

Replies: 1
Views: 3911

PostForum: Разное :: JavaScript   Posted: Wed Oct 29, 2008 2:00 pm   Subject: onMouseMoveEnd
Спасибо WindgedFox за подсказку:

var count = 0;

document.onmousemove = function() {
var delay = 100;
var executionTimer;
return function(e) {
if (executionTimer) { clearTimeout(executionTimer); }
executionTimer = setTimeout(function(){onMouseMoveEnd(e)}, delay);
};
}()

function onMouseMoveEnd(e){
document.getElementById('output').innerHTML= ++count;
}
  Topic: onMouseMoveEnd
K.Wiolowan

Replies: 1
Views: 3911

PostForum: Разное :: JavaScript   Posted: Wed Oct 29, 2008 1:46 pm   Subject: onMouseMoveEnd
Здесь: http://www.matts411.com/post/delaying_javascript_event_execution/
--показан способ имитации событий onMouseMoveEnd, onScrollEnd.

Отдельная страница с демонстрацией onMouseMoveEnd: http://iyapi.net/test//onmousemoveend.html
<html>
<head>
<script>
document.onmousemove = function() {
var count = 0;
var delay = 125; /* milliseconds - vary as desired */
var executionTimer;
return function() {
if (executionTimer) { clearTimeout(executionTimer); }
executionTimer = setTimeout(function() {
//собственно тело функции
document.getElementById('output').innerHTML= ++count;
}, delay);
};
}()
</script>
</head>
<body>
<h2 id="output">0</h2>
</body>
</html>

Вопрос: как модифицировать код, чтобы в Firefox еще и объект event передавался в качестве параметра?
Спасибо!
  Topic: SunSpider JavaScript Benchmark
K.Wiolowan

Replies: 10
Views: 13409

PostForum: Разное :: JavaScript   Posted: Wed Jun 18, 2008 10:17 am   Subject: SunSpider JavaScript Benchmark
Firefox 3 идет на рекорд мира!
http://www.spreadfirefox.com/ru/worldrecord

На 11:00 - 4,6 млн закачек
1. США - 2052 тыс.
2. Германия - 218 тыс.
3. Япония - 211 тыс.
4. Канада - 157 тыс.
....
10. КНР - 100 тыс.
...
15. Россия - 49 тыс.
  Topic: JS проверка орфографии (spellchecker)
K.Wiolowan

Replies: 2
Views: 7050

PostForum: Разное :: JavaScript   Posted: Sat May 17, 2008 2:09 pm   Subject: JS проверка орфографии (spellchecker)
Да, действительно, идея наполеоновская. Для проверки орфографии нужно либо словарь со всеми словоформами - а это миллионы слов и мегабайты кода, либо словарь основных форм (все равно мегабайты) и морфопарсер. В условиях, когда и ИЕ и ФФ поддерживают проверку орфографии в полях ввода - вещь сомнительной ценности.
  Topic: SunSpider JavaScript Benchmark
K.Wiolowan

Replies: 10
Views: 13409

PostForum: Разное :: JavaScript   Posted: Fri May 09, 2008 10:48 pm   Subject: SunSpider JavaScript Benchmark
http://iyapi.net/img/sunspider.gif
  Topic: "FULL JOIN"
K.Wiolowan

Replies: 1
Views: 4693

PostForum: Общие вопросы :: SQL   Posted: Fri Dec 21, 2007 4:34 pm   Subject: "FULL JOIN"
Научился сам :)

SELECT table1.*, table2.c FROM `table1` FULL OUTER JOIN `table2` USING(a)

Или в моей версии MySQL, не поддерживающей FULL OUTER JOIN:

CREATE TABLE `tab12` AS
SELECT table1.a, table1.b, table2.c FROM `table1` LEFT JOIN `table2` USING(a)
UNION
SELECT table2.a, table1.b, table2.c FROM `table2` LEFT JOIN `table1` USING(a)
  Topic: "FULL JOIN"
K.Wiolowan

Replies: 1
Views: 4693

PostForum: Общие вопросы :: SQL   Posted: Fri Dec 21, 2007 11:24 am   Subject: "FULL JOIN"
Простите вопрос чайника.
Есть две таблицы:
t1:
a1, b1
a2, b2

t2:
a1, c1
a3, c3

Хочется получить следующее:
t12
a1, b1, c1
a2, b2, null
a3, null, c3

--Как это сделать?

LEFT JOIN дает
a1, b1, c1
a2, b2, null

RIGHT JOIN дает
a1 b1 c1
NULL NULL c3

INNER JOIN дает
a1 b1 c1
  Topic: Алгоритм распознавания существительных
K.Wiolowan

Replies: 2
Views: 4572

PostForum: Разное :: PHP   Posted: Mon Nov 19, 2007 2:52 pm   Subject: Re: Алгоритм распознавания существительных
Есть задача - необходимо создать алгоритм распознавания частей речи без словаря. Берем самые простые случаи - полные прилагательные (уже написан алгоритм - нормально работает), существительные и глаголы.
Может быть кто-нибудь сможет поделиться ссылками на более-менее ценные источники по морфологии существительных и алгоритмам их распознавания?

Здесь нужно иметь в виду, что имеется значительная омонимия окончаний спряжений глаголов, склонений существительных и прилагательных, форм наречий итп.
Например, "мороженое", "пану хорунжему" - это "прилагательные",
"кадило" -- "ходило"
"ору" - "топору", ит.п., чуть ли не для любой морфологической формы можно найти омонимы из других частей речи, для одних много, для други поменьше...

Т.е. без словаря у Вас будет где-то 5% ошибок. Это допустимо? Может, взять готовый пакет русской морфологии на aot.ru и адаптировать его для PHP (конечно, имеет смысл только для серверной части)
  Topic: кирилица в utf8
K.Wiolowan

Replies: 3
Views: 4757

PostForum: Разное :: JavaScript   Posted: Fri Nov 09, 2007 8:06 pm   Subject: кирилица в utf8
Сформулируйте четче свою задачу. String в ECMAScript - UTF16-строка. Говорить об UTF8 можно в контексте джаваскрипт, имхо, в следующих случаях:
--считать утф8-текст из файла / записать String в утф8-файл.
--конвертировать неправильно считанные утф-8 строки типа "ну я и дурак" обратно в UTF16
  Topic: кирилица в utf8
K.Wiolowan

Replies: 3
Views: 4757

PostForum: Разное :: JavaScript   Posted: Fri Nov 09, 2007 7:24 pm   Subject: кирилица в utf8
В javascript строки в принципе все и всегда в utf8.
В UTF-16.
  Topic: function loadScript(path) [Обсуждение]
K.Wiolowan

Replies: 14
Views: 17666

PostForum: Разное :: JavaScript   Posted: Fri Oct 05, 2007 4:46 pm   Subject: function loadScript(path) [Обсуждение]
с другой стороны - динамическая подгрузка яваскрипта - не такая уж и нужная весч, если конечно вы не разрабатываете фреймворк на 200+ килобайт.

В виртуальной клавиатуре WingedFox'a по три-четыре набора иероглифов и "движков" к ним для японского, корейского и китайского, от 30К каждый... а если японский полностью поддерживать - то будет 500К...
  Topic: function loadScript(path) [Обсуждение]
K.Wiolowan

Replies: 14
Views: 17666

PostForum: Разное :: JavaScript   Posted: Fri Oct 05, 2007 12:25 pm   Subject: function loadScript(path) [Обсуждение]
Ну, осталось только как-то заставить браузеры кешировать подзагружаемые скрипты - и слава о нас с Вами разнесется по всему киберпространству! ;)
  Topic: function loadScript(path) [Обсуждение]
K.Wiolowan

Replies: 14
Views: 17666

PostForum: Разное :: JavaScript   Posted: Thu Oct 04, 2007 7:12 pm   Subject: function loadScript(path) [Обсуждение]
Спасибо!
а этот номер:

oScript.onload = goOnWorking;
oScript.src = aSRC;
};
--не пройдет, насколько я понял? Вместо этого в конец загружаемого шрифта поместить что-то типа

...
top.goOnWorking();


?
  Topic: function loadScript(path) [Обсуждение]
K.Wiolowan

Replies: 14
Views: 17666

PostForum: Разное :: JavaScript   Posted: Thu Oct 04, 2007 4:52 pm   Subject: function loadScript(path) [Обсуждение]
function loadScript(path){...}
--есть ли что-то такое, кроссбраузерное и робустное?

(работающее даже в условиях "Отключить JavaScript". Шютка)
  Topic: Наследование внутри объекта
K.Wiolowan

Replies: 7
Views: 4920

PostForum: Разное :: JavaScript   Posted: Mon Dec 04, 2006 9:45 am   Subject: Наследование внутри объекта
Вместо того, чтобы вешать на сотню объектов один onmouseover, можно помечать их как-то, например, атрибутом:
<div class="style1 object1">

-и добавить в глобальный document.body.onmouseover=... / document.body.addEventListener('mouseover',...)
проверку:

...
if (firer.className && firer.className.indexOf('object1')!= -1){
alert('object1 onmouseover!')
}
  Topic: FileSystemObject OpenTextFile не может читать UTF8
K.Wiolowan

Replies: 4
Views: 7957

PostForum: Разное :: JavaScript   Posted: Tue Nov 28, 2006 11:24 am   Subject: FileSystemObject OpenTextFile не может читать UTF8
Проблема еще и в том, что, похоже, дядя Билл не различает "ANSI" и "system default". --конвертирует и то и то в кириллицу. Очевидно, думая, что русские иначе как по-русски писать и читать не могут.
  Topic: FileSystemObject OpenTextFile не может читать UTF8
K.Wiolowan

Replies: 4
Views: 7957

PostForum: Разное :: JavaScript   Posted: Tue Nov 28, 2006 11:16 am   Subject: FileSystemObject OpenTextFile не может читать UTF8

Метод OpenTextFile
Синтаксис: fso.OpenTextFile(имя

--Это все хорошо, но вот я сохраняю в формате UTF-8 строку "water абракадабра 한국 韓國" (в конце стоят два символа на корейском, и два - на китайском"
и далее считываю ее:
1) в формате "0": "п»їwater абракадабра н•њкµ­ йџ“ењ‹"
2) в формате "-2": "п»їwater абракадабра н•њкµ­ йџ“ењ‹"
3) в формате "-1": "믯瞿瑡牥퀠킰톱킀킰킺킰킴킰톱킀₰闭궵鎟鳥"

после того, как я считал файл в формате 0/-1, и совершил над полученной строкой описанное выше действо, получаю:
"water абракадабра 한국 韓國"
  Topic: FileSystemObject OpenTextFile не может читать UTF8
K.Wiolowan

Replies: 4
Views: 7957

PostForum: Разное :: JavaScript   Posted: Tue Nov 28, 2006 10:44 am   Subject: Re: FileSystemObject OpenTextFile не может читать UTF8
&nbsp;
  Topic: FileSystemObject OpenTextFile не может читать UTF8
K.Wiolowan

Replies: 4
Views: 7957

PostForum: Разное :: JavaScript   Posted: Tue Nov 28, 2006 10:35 am   Subject: FileSystemObject OpenTextFile не может читать UTF8
метод объекта FileSystemObject, OpenTextFile(), может открывать файлы в формате Unicode (UTF-16) и ASCII (+локализация по умолчанию, напр. cp1251).
Чтобы считать UTF-8 файл в режиме ASCII мне приходится исправлять неправильную конвертацию "кириллицы", проводить глобальные замены типа

utf8string = utf8string.replace(rePseudoCyr, function($0){
return UTF8Cyr2Uni($0)
}

var rePseudoCyr = /[\u0410-\u042F].|[\u0430-\u043F]..|[\u0440-\u044F].../g

function UTF8Cyr2Uni(str){
switch (str.length){
case 3:
return (String.fromCharCode(
((str.charCodeAt()-848-0xE0)<<12)+
(cyr2ascii[str.charCodeAt(1)]-0x80)*64+
cyr2ascii[str.charCodeAt(2)]-0x80 ))
break
case 2:
return( String.fromCharCode(
((str.charCodeAt()-848-0xC0)<<6)+
cyr2ascii[str.charCodeA ...
  Topic: Работа с переменными
K.Wiolowan

Replies: 7
Views: 4672

PostForum: Разное :: JavaScript   Posted: Sat Nov 18, 2006 2:45 pm   Subject: Работа с переменными
arr =[0,1,2]
if(typeof arr[9] == "undefined"){
arr[10]='9-й элемент не определен'
}else{
arr[10]='9-й элемент существует'
}

Кроме того, конструкция:
!arr[9]
--принимает значение true, если:
typeof arr[9]=="undefined"
arr[9]===null
arr[9]===0
arr[9]===''

--если любое из этих значений для вас "пустое", то можно использовать if(!arr[i])
(однако !arr[9]==false при любом следующем значении arr[9]:
пустой массив [],
пустой объект {},
строка '0' )
  Topic: Virtual Keyboard [Обсуждение]
K.Wiolowan

Replies: 90
Views: 67173

PostForum: Разное :: JavaScript   Posted: Sun Nov 05, 2006 10:52 am   Subject: Virtual Keyboard [Обсуждение]
PS: приветствуется спонсорская поддерка моих усилий =)
--Подал сорокоуст о здравiи Крылатой Лисы.
  Topic: Virtual Keyboard [Обсуждение]
K.Wiolowan

Replies: 90
Views: 67173

PostForum: Разное :: JavaScript   Posted: Sat Nov 04, 2006 11:24 am   Subject: Virtual Keyboard [Обсуждение]
Буфером займусь "asap"
--Когда наступит asap, телеграфируйте мне, пожалуйста, на wablenica at mail dot ru :)
  Topic: Проект Complete Menu Solution [обсуждение 2]
K.Wiolowan

Replies: 38
Views: 38189

PostForum: Разное :: JavaScript   Posted: Wed Nov 01, 2006 6:58 pm   Subject: Проект Complete Menu Solution [обсуждение 2]
"Кренделя" - в IE6. Или о нем уже можно не вспоминать? ;)

Дык ведь 85% всех юзеров используют ФФ - кому нужен этот ИЕ??? :)
  Topic: Virtual Keyboard [Обсуждение]
K.Wiolowan

Replies: 90
Views: 67173

PostForum: Разное :: JavaScript   Posted: Wed Nov 01, 2006 4:33 pm   Subject: Virtual Keyboard [Обсуждение]
Нет, все же корейские драйверы клавиатуры работают не так, как арабские. Насколько я помню, в случае арабского у каждого _глифа_ Юникода, с одним и тем же кодом, есть несколько "синонимических" представлений, которые как бы "спрятаны" в шрифте, и реализуются при представлении "картинки".

Одну из корейских клавиатур я вбил, и в витртуальной клавиатере там ничего не заменяется на лету:

VirtualKeyboard.addLayout('kr', '2 Beolsik',
[96,49,50,51,52,53,54,55,56,57,48,45,61,92,
12610,12616,12599,12593,12613,12635,12629,12625,12624,12628,91,93,
12609,12596,12615,12601,12622,12631,12627,12623,12643,59,39,
12619,12620,12618,12621,12640,12636,12641,44,46,47],
{'0': [126,33,64,35,36,37,94,38,42,40,41,95,43,124,
12611,12617,12600,12594,12614,12635,12629,12625,12626,12630,123,125],
'35': [58,34],
'44': [60,62,63]});

В принципе, видно, что к клавишам "цепляются" символы с дес. кодами 12ххх (랄난   ...
  Topic: Virtual Keyboard [Обсуждение]
K.Wiolowan

Replies: 90
Views: 67173

PostForum: Разное :: JavaScript   Posted: Tue Oct 31, 2006 10:00 pm   Subject: Virtual Keyboard [Обсуждение]
В случае арабского там другой случай: у каждого символа, Юникода есть несколько разновидностей, которые реализуются в зависимости от положения в слове.
Вот пример: два символа слитно, два символа раздельно, и их юникоды:
عه , ع ه
&#1593; &#1607; &#1593;&#1607;
В случае корейского без буфера клавиатуры не обойтись. Вот аналогичный пример:
한 ㅎㅏㄴ
&#54620; &#12622; &#12623; &#12596;
Комбинация ㅎㅏㄴ получается просто сдвигом вправо-влево после набора каждого символа (буфер клавиатуры т.обр. "забывает", что вводилось ранее).
Введение буфера клавиатуры позволяет решать и проблемы с deadkeys, и с заменами типа 'a = á
Нужно сделать FIFO-буфер
Для корейского достаточно емкости буфера вообще в один символ. Здесь могут быть две ситуации:
а) новый keystroke не образует "лигатуру" с символом в буфере и просто замещает его. Если новый символ сам может образовать лигатуры с п ...
  Topic: Проект Complete Menu Solution [обсуждение 2]
K.Wiolowan

Replies: 38
Views: 38189

PostForum: Разное :: JavaScript   Posted: Mon Oct 30, 2006 9:26 pm   Subject: Проект Complete Menu Solution [обсуждение 2]
Запатек - хорошая штука. Тут всё зависит от требований
Я изначально разрабатывал систему управления древовидным контентом (несмотря на название). С целевой аудиторией - разработчики заказного ПО.
Запатек - он больше для конечного пользователя, которому надо свою менюшку сделать на домашней странице.

--Я бы даже так не сказал :). Запатек довольно тяжеловесен, и, имхо, не устойчив. Вот пример того, какие кренделя выдает Запатек (в визарде все было ок):
http://jdh.iyapi.net/rosia/ksen.htm

Его таблицы начинают подвисать на 3ГГц Пентиуме уже на паре сотен строк.
  Topic: Virtual Keyboard [Обсуждение]
K.Wiolowan

Replies: 90
Views: 67173

PostForum: Разное :: JavaScript   Posted: Mon Oct 30, 2006 8:52 pm   Subject: Virtual Keyboard [Обсуждение]
Мог бы попробовать закодировать корейские и японские раскладки, если Вы мне объясните "входы" и "выходы" скрипта.
У корейцев и японцев слоговые азбуки (хангыль, катакана/хирагана), и драйверы клавиатуры требуют анализа последовательности keystrokes.
Например, символ 한 (хан) "состоит" из ㅎ (х), ㅏ (а), ㄴ (н)
Насколько я представляю, "корейская клавиатура" -это таблица клавишных кодов ПЛЮС "буфер введенных компонентов слога" ПЛЮС функция, строящая слог исходя из текущего буфера и текущего keystroke
Например, как строится слово 한국 (Корея):
буфер==[] клавиша: 'm' = ㅎ-
буфер==[ㅎ] клавиша: 'f' = ㅏ
буфер==[하] клавиша: 'n' = -ㄴ
буфер==[한] клавиша: 'k' = ㄱ-
한 буфер==[ㄱ] клавиша: 'b' = ㅜ
한 буфер==[구] клавиша: 'x' = -ㄱ
한 буфер==[국] клавиша: ',' = ,
한국, буфер==[] итп

Особенность такого "слогового" ввода в том, что соде ...
 
Page 1 of 2 All times are GMT + 3 Hours
Goto page 1, 2  Next
XML