RXL
Технический
Администратор
Offline
Пол:
|
|
« : 24-11-2005 19:46 » |
|
В процессе эксперементов (я их обозвал этюдами) сделал вот такой файлик. Серьезно прошу его не воспринимать - код чисто тестовый. Если кому не лень, проверте на своем браузере. На моих (Mozilla 1.7.12 и IE 6.0.2900.2180...) работает, но на каждом есть дефекты.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
MOPO3
Ай да дэдушка! Вах...
Команда клуба
Offline
Пол:
Холадна аднака!
|
|
« Ответ #1 : 24-11-2005 20:29 » |
|
Проверил на IE и на FireFox. На IE в момент наведения на пункт меню как и на FireFox бэкграунд пункта меню меняется на светло-серый На IE в момент клика как и на FireFox бэкграунд пункта меню меняется на белый На IE как и на FireFox окна появляетя и двигаются мышкой нормально Разница : Размеры окон немного отличаются На IE, после клика на пунт меню, бэкграунд остаётся белым, на FireFox, нет.
|
|
|
Записан
|
MCP, MCAD, MCTS:Win, MCTS:Web
|
|
|
MOPO3
Ай да дэдушка! Вах...
Команда клуба
Offline
Пол:
Холадна аднака!
|
|
« Ответ #2 : 24-11-2005 20:33 » |
|
RXL, а чего это тебя так ЖабаСкрипт зацепил ? Я стараюь его вообще не использовать А сейчас вообще на веб не программирую ничего кроме вэб сервисов на .НЕТ, да и на Си Шарп подсел плотно Забыл уже практически даже свой любимый ПХП Всё только Window Forms последнее время, да XML с DataSet'ами да DataGridView'вами
|
|
« Последнее редактирование: 18-12-2007 21:44 от Алексей1153++ »
|
Записан
|
MCP, MCAD, MCTS:Win, MCTS:Web
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #3 : 25-11-2005 08:00 » |
|
Спасибо. Эта менюшка - не конечный результат, но все же странно: у меня в IE6 после клика фон не белый...
Разбираюсь по маленьку. Увлекся идеей web-приложений: насрать на ОС пользователя, никаких инсталяций, центролизованное сопровождение кода и т.п. Но сам HTML нефига не может по части автоматизации и скуден в визуализации, и главный кондидат для этого - js. JavaScript есть в каждом современном графическом браузере и будет есть дальше. Кроме того, я надеюсь, со временем браузеры начнут работать по стандартам, а не как сейчас. Если бы не давние бодания MS и Sun, то сейчас в web была бы актуалнее Java. Ксатати, по моим наблюдениям, в сети не густо со спецами по js: зачастую код либо очень простой, либо однобокий и кривой. Конечно встречаются и шедевры.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #4 : 25-11-2005 11:25 » |
|
Продолжаю свои этюды: сортировка строк в таблице. Может кому понадобится. Для упрощения задачи я объединил сортируемые строки в группу тегом tbody. Код соотв. XHTML1.0 и DOM2.
|
|
« Последнее редактирование: 25-11-2005 11:33 от RXL »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Falsehood
Молодой специалист
Offline
Пол:
не может быть
|
|
« Ответ #5 : 13-06-2006 10:58 » |
|
прошу прощения, что поднимаю старую тему.. может она и не интересует уже никого.. но очень хочется высказаться, что не покатит такая сортировка. если заменить последнее значение в столбце N на 14, то при сортировке этого столбца 14 будет становиться перед 2
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #6 : 13-06-2006 14:50 » |
|
Falsehood, конечно. Это только тестик, накиданный на скорую руку. Почему же никого не интересует - тебя же заинтересовала
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Falsehood
Молодой специалист
Offline
Пол:
не может быть
|
|
« Ответ #7 : 14-06-2006 07:28 » |
|
это точно пришлось тут задуматься над этой проблемой.. увдела твою аннотацию и губу раскатала, что сейчас сделаю ctrl+с ctrl+v и всё будет замечательно
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #8 : 14-06-2006 07:56 » |
|
Наташ, код, в общем то, рабочий. Если нужно изменить сортировку, то перепиши вот эту строчку: rows.sort(function (a,b) { return (a.key < b.key) ? -1 : ((a.key > b.key) ? 1 : 0); });
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Falsehood
Молодой специалист
Offline
Пол:
не может быть
|
|
« Ответ #9 : 14-06-2006 09:24 » |
|
Ром, проблема в том, что зарание неизвестно, какого типа данные будут в столбце, поэтому непонятно, каким именно компаратором их сравнивать.. не вводить же в заголовок столбца скрытое поле с типом данных... некрасиво это как-то...
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #10 : 14-06-2006 11:20 » |
|
Простой выход: добавить еще один параметер в ф-ию. Ведь создавая таблицу ты быстрее всего знаешь формат данных. Или в сравнении ввести более сложную логику: если оба ключа состоят только из цифр, то сравнивать их как числа.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Falsehood
Молодой специалист
Offline
Пол:
не может быть
|
|
« Ответ #11 : 15-06-2006 09:49 » |
|
идея хорошая. только в моей таблице могут быть и ссылки в ячейках, поэтому надо будет прилично скрипт переделать под нее.. потом попробую. спасибо
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #12 : 15-06-2006 15:12 » |
|
С ссылками и прочими сложными объектами, думаю, следует поступить так: заменить строку rows.push( { key: o.childNodes[column_n].innerHTML, ref: o } ); на rows.push( { key: o.childNodes[column_n].innerHTML.replace(/<\/?\w+[^>]*\/?>/g, ''), ref: o } ); Сравнение будет происходить по тексту, без учета тегов.
|
|
« Последнее редактирование: 18-12-2007 21:46 от Алексей1153++ »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Dead Krolik
|
|
« Ответ #13 : 15-06-2006 17:02 » |
|
RXL я гляжу ты в js шаришь. А можешь предложить красивое решение, когда каждую строку таблицы можно перемещать вверх/вниз и удалять. Естественно с поддержкой со стороны сервера. Мои мысли сводятся к введению еще одного столбика в котором и перемещать. Но вот как организовать ситуацию проверки возможности удаления строки и подтверждения этой возможности серверными скриптами и разрешения ее удаления, это вопрос. Ведь код смены позиций строк можно написать, но нужно сделать это через ajax, что бы сервер мог проверить возможность удаления и вообще узнать об этом. в общем нужны идеи, ибо тот ajax который я использую умеет только заменять ответом сервера заданный div или значение value у полей ввода, другой пока использовать не хочу.
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #14 : 15-06-2006 17:47 » |
|
Не так хорошо, как хотелось бы - практики мало. AJAX возвращает только XML - встроить этот код в HTML-дерево довольно гимморно. Разве что вкладывать готовый html-фрагмент в CDATA и вставлять его потом в innerHTML. Вернусь к вопросу. Не понял насчет "еще одного столбика в котором и перемещать". Уточни, да бы не гадать. Подтверждение на сервере сделать не сложно. Как обычно, ты посылаешь запрос, а получаешь xml-ответ. К примеру, для данного случая: <reply><result>0</result></reply> Получение кода: code = doc.getElementsByName('result')[0].firstChild.nodeValue; По этому коду и определить, допустима ли операция. Проверку можно производить в момент указания желаемой строки для перемещения (или удаления) или в момент указания позиции, куда нужно перенести.
|
|
« Последнее редактирование: 18-12-2007 21:47 от Алексей1153++ »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Dead Krolik
|
|
« Ответ #15 : 16-06-2006 13:18 » |
|
насчет допустимости я уже передумал, проще не выдавать кнопочку если действие запрещено ajax по-моему совсем не обязательно xml, что хочу то и отправляю с сервера столбик - это просто столбик где будут элементы навигации, т.е. перемещения и удаления строчек (помимо столбиков с данными) Я больше размышляю сейчас. Как мне например уведомлять сервер о смене порядка строк. Видимо передавать id того, что она собой олицетворяет и направление в ajax-запросе. По сути удаление можно выдрать из твоего кода. в общем получается, что пока вопросов нет
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #16 : 16-06-2006 13:30 » |
|
Dead Krolik, AJAX = Asynchronous JavaScript And Xml. Возвращаемый документ - только xml. Будут вопросы - пиши.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Dead Krolik
|
|
« Ответ #17 : 16-06-2006 13:51 » |
|
Использую sack, в жизни не формировал хмл на выходе скрипта, делал echo а оно "само" подставлялось куда надо. Так шта ... P.S.Правда сайт чего-то тупит, 404 всякие выдает. Раньше вроде работал.
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #18 : 16-06-2006 15:11 » |
|
Хоть код остался и то хорошо.Без лицензий, документации и примеров в данном случае прожить можно Хм. Моя ошибка - запамятовал: может вернуть исходный текст. Если ответ сервера не содержит XML, то можно получить его в чистом виде, а если содержит, то еще и пропарсеный.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Dead Krolik
|
|
« Ответ #19 : 16-06-2006 15:19 » |
|
А работа с ним простая: var ajax = new sack(); ajax.setVar('имя', 'значение'); ajax.requestFile = 'путь к скрипту обработчику'; ajax.method = 'POST'; ajax.element = замещаемый_элемент_его_id;//или div или input type=text, в исходном коде все можно увидеть ajax.onLoading = функция_вызываемая_по_окончанию_загрузки; ajax.runAJAX(); ~~~ нашел мега руководство как с ним работать, даже в доках не описано было многое
|
|
« Последнее редактирование: 18-12-2007 21:49 от Алексей1153++ »
|
Записан
|
|
|
|
Falsehood
Молодой специалист
Offline
Пол:
не может быть
|
|
« Ответ #20 : 19-06-2006 07:28 » |
|
Ром, не придется мне с этой сортировкой разбираться: руководитель не любит, когда в приложении много javascript. говорит, что сопровождать потом тяжело... так что останется сортировка такая, как есть.. на сервере...
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #21 : 19-06-2006 07:35 » |
|
Не спорю, js - не С++. Web-программирование вообще не совсем подстрижено и покрашено.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Sla
|
|
« Ответ #22 : 19-06-2006 08:20 » |
|
Ром, не придется мне с этой сортировкой разбираться: руководитель не любит, когда в приложении много javascript. говорит, что сопровождать потом тяжело... так что останется сортировка такая, как есть.. на сервере...
Не аргументировано... (не любит...) А ты ему ромашку подари. Наличие javascript нагружает клиента (сильно ли), грузит трафик (сильно ли). Сопровождение? А какая разница где писать сортировку? На сервере или клиентском приложении, тем более что функция сортировки пересылается клиенту? Вот такое мое скромное мнение
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #23 : 19-06-2006 09:03 » |
|
Sla, многое зависит от организованности работы, нагрузки, сроков. Иными словами, если часто бывает запарка, то заниматься малознакомыми вещами не стоит. Хотя, в данном случае, я вижу лишь одну возможную проблему: приведенный скрипт сортирует лишь то, что есть на странице. В остальном, сортировка у клиента лучше - это быстрее и не вызывает полное перестроение страницы с перемещением к началу.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Falsehood
Молодой специалист
Offline
Пол:
не может быть
|
|
« Ответ #24 : 19-06-2006 10:37 » |
|
я тут работаю недавно, а у местного народа есть опыт сопровождения крупных проектов, сделанных с непомерным использованием js. судя по всему, неприятный опыт.. отсюда и отторжение.
|
|
|
Записан
|
|
|
|
|