01.11.2009, 04:12
|
|
Профессор
|
|
Регистрация: 16.09.2009
Сообщений: 253
|
|
RAM-Disk как DOM-объект
Ребята, вот такой нестандартный вопрос у меня.
На сколько перспективно просить W3C о введение в стандарт HTML DOM-модели объекта RAM-Disk?
Вот бейте меня, но я опять произнесу слово CANVAS. Вот сейчас эмуляторы Spectrum и других компьютеров появились. Думаю скоро и до NES дойдёт. Всё хорошо с этим тэгом. Да вот с файлами - просто гиблое место!
В IE у меня есть несколько собственных скриптов, вплоть до коррекции сетки частот ТВ-каналов в драйверах системы. Но работают они лишь в IE, так-как читают десятки файлов и записывают один, и наоборот.
Так вот. Работа с файлами из скрипта - небезопасный механизм и отсутствует в остальных браузерах. Но!
Что стоит ввести объект RAM-Disk - виртуальный диск. Откуда файлы пользователь туда перетащил - скрипт не знает, но видит новый Array в списке RAM-Disk объекта.
И пользователь можеть и сохранять файлы оттуда, прямо как картинку.
Вот сейчас с графикой в html всё отлично, обещают и поддержку 3D. А значит найдутся энтузиасты моделирования лабиринтов, интеръеров и т.д.
И тут отсутствие чтение/записи локальных файлов без участия сервера будет большой проблемой...
добавляю:
Ожидаю бесконечных предложений добавления в страницы всяких Flash'ек, обеспечивающих работу с файлами. Поэтому сразу скажу:
Canvas уступает Flash'графике в производительности и в некоторых деталях, о которых уже говорили. Однако, большой плюс этого тэга в том, что если нужно на всю страницу по диагонали написать ОБРАЗЕЦ, то ради этого специально шаманить в Flash-студии или с громадным PNG-фоном - извращение, когда Canvas-средства - уже стандарт HTML 5!
Так и RAM-Disk: Одно - как часть DOM и естественное как Cookies, другое - как очередное Flash'вложение.
Прошу не быть консерваторами, а задуматься над все за-против относительно RAM-Disk
К тому же, что-то не встречал я Flash'ек, на которые можно было просто перетащить файл из проводника в их список. И сильно сомневаюсь, что возможно обратное: Выделить файл в списке и тупо перетащить на рабочий стол, а там он появится как обыкновенный файл...
Вот это - настоящая интерактивность.
P.S.: Если кто-то может предложить, дайте мне ссылки на подобные Flash'ки и чтобы не требовали последней версии и запускались даже на только что установленной Windows'98! Да и весили не больше 1кб. А-ля простое окно со списком виртуальных файлов, их переименование/удаление, дата изменения... Т.е. виртуальный винт, возможно и с каталогами!
Последний раз редактировалось Paguo-86PK, 01.11.2009 в 06:12.
Причина: Обгоняя предложения о Flash
|
|
01.11.2009, 09:23
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
Сообщение от Paguo-86PK
|
На сколько перспективно просить W3C о введение в стандарт HTML DOM-модели объекта RAM-Disk?
|
На столько же, насколько просить производителей браузеров. W3C не закон и реализовывать что-то в нем описанное никто не обязан. Просить вообще вредно для нервной системы, нужно реализовывать самому.
|
|
01.11.2009, 10:07
|
|
Профессор
|
|
Регистрация: 16.09.2009
Сообщений: 253
|
|
Ну это понятно
Сообщение от Gozar
|
На столько же, насколько просить производителей браузеров. W3C не закон и реализовывать что-то в нем описанное никто не обязан. Просить вообще вредно для нервной системы, нужно реализовывать самому.
|
Реализовывать не обязаны, однако если стандарт есть, то в будущем предпримут попытки реализовывать хоть что-то из стандарта.
Реализовывать самому - я об этом думал. Начать бы хотя бы с переработки утилиты Virtual Floppy Disk Driver, исходники которой я изучал. А переработка вот какая:
Драйвер занимает под себя букву свободного диска (A: B: S: ...) и при переносе какого-нибудь файла в тот диск - проигрывает.
Скажем, нужно нам проиграть 5 mp3-файлов, мы тупо закидываем их в тот диск как в очередь. И они проигрываются по-очереди. Как WinAMP, но на более абстрактном уровне
Пользователи Total Commander меня поймут. Только вот моя идея не ограничивается таки оболочкой TC, а является виртуальным диском
Или вот чат: Заходишь в диск T: например, а там вместо файлов - сообщения заранее настроенного он-лайн чат-канала.
Конечно прочитав эти фантазии можно подумать, что я обкурился.
Нет, просто я не потерял способности сохранять фантазиям крылья, не ломая их чьим-то консерваторскими рамками и постулатами
|
|
01.11.2009, 11:11
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Paguo-86PK,
давайте вы все-таки сначала весь HTML изучите (включая HTML5), а не только canvas, не говоря уж про JavaScript. А потом уже будете амбициозные предложения в W3C делать. А то ведь неловко может получиться. Гуглить можете начать с фразы DOM storage.
А все ваши рассуждения показывают, что вы не представляете, как работают браузеры, и какие проблемы им приходится решать. Так что рано вам фичи для них придумывать.
|
|
01.11.2009, 17:58
|
|
Профессор
|
|
Регистрация: 16.09.2009
Сообщений: 253
|
|
Консерватизм рулит?
Сообщение от Kolyaj
|
Paguo-86PK,
давайте вы все-таки сначала весь HTML изучите (включая HTML5), а не только canvas, не говоря уж про JavaScript. А потом уже будете амбициозные предложения в W3C делать. А то ведь неловко может получиться. Гуглить можете начать с фразы DOM storage.
А все ваши рассуждения показывают, что вы не представляете, как работают браузеры, и какие проблемы им приходится решать. Так что рано вам фичи для них придумывать.
|
Я скачал всю спецификацию в pdf-файле. Читал там и про тэги menu, progress, video и т.д. В Опере и в Фоксе примеры не сработали, как описано в мануале. Так что, увы, изучил я почти всё, что показалось чужим моему глазу, да и интересным.
На сколько я понял, тэг menu должен выдавать уже не тупое ul-подобное меню-список, а реальное меню графического интерфейса. Или я не так читал?
А ввести в браузер виртуальный диск - так же легко, как добавлять ссылки страницы в избранное или делать её стартовой. А вот возмём Кукисы: это тоже своеобразный, сильно ограничений виртуальный файл под каждую страницу персонально. Я уже пытался делать менеджер виртуальной файловой системы на кукисах.
Работает, но чтобы извлечь/записать реальный файл нужны услуги PHP, что очень неудобно. Плюс, насколько я помню, ограничение там до 4кб!
А RAM-Disk в HTML - вполне можно сделать как ExCookies - продвинутые кукисы, но браузер также оснащён менеджером для них: Извлечь в файл, впихнуть файл... Плюс желательно подкаталоги ещё. Короче...
Ну в общем... Кто о чём, а вшивый ламер - про canvas... Так я понял ваши намёки.
|
|
01.11.2009, 18:53
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
Сообщение от Paguo-86PK
|
Так я понял ваши намёки.
|
Вы всё верно поняли, для того чтобы рассуждать на такие темы нужно хотя бы поверхностно представлять реальное положение вещей и уж тем более нужно знать что могут и чего не могут различные браузеры и почему.
Лично я рад, что у Вы не режете фантазиям крылья, но обсуждать мне с Вами просто нечего, у нас разный уровень, мы друг друга не понимаем.
Я сам например пришёл в js из php и считаю что ооп php мастдай, наверное многие считают что я не прав, но переживать по этому поводу я не буду.
Хотите что-то сделать, так делайте!
|
|
01.11.2009, 19:38
|
|
Профессор
|
|
Регистрация: 16.09.2009
Сообщений: 253
|
|
Кратко опишу суть элемента
RAM-Disk в HTML - некий select-подобный список. Имеет свойство innerFile например.
innerFile - Array массив, в котором перечисленны все файлы/каталоги. Скрипт видит в следующем виде:
Код:
|
this.innerFiles = new Array
(
{
"name": "Music",
"date": "12:12:12 12/12/2012",
"attr": "folder",
"data": new Array
(
{
"name": "..",
"date": "12:12:12 12/12/2012",
"attr": /*здесь указать на каталог-родитель не получится без алгоритмической рекурсивной ссылки */,
"data": ""
},
{
"name": "conyon.mid",
"date": "12:12:12 12/12/2012",
"attr": "normal",
"data": "base64, ..."
}
)
},
{
"name": "read_me.txt",
"date": "12:12:12 12/12/2012",
"attr": "normal",
"data": "Hello! World!!!<br/>This is RAM-Disk tag!"
}
) |
и никакой реальной файловой системе ничем не угрожает. Пользователь может спокойно блуждать по мнимой файловой системе.
Уникальная возможность: Контекстным меню кликнув на нужный пункт списка можно выбрать опции "Переименовать", "Вырезать", "Вставить", "Удалить", "Копировать", "Клонировать". При этом произойдёт лишь внутренняя реорганизация всего Array. А скрипт будет оповещён лишь абстрактно - onChange...
Ещё в контекстном меню пользователь найдёт пункт "Извлечь". Это равносильно как у картинки "Сохранить как...". Открывается диалог с предложением выбрать имя сохраняемого файла и папки.
При этом скрипт оповещён о действиях пользователя не будет, или будет, но абстрактно, как onSelect или onClick...
Ещё можно взять любой файл проводника и перетащить его прямо в список файлов в окне браузера. Сразу произойдёт реорганизация Array, будет добавлена новая структура. А содержимое реального файла преобразуется в "data": "base64, ... etc"... При этом скрипт будет оповещён событием onChange.
Таким образом, новый элемент - RAM-Disk на HTML странице никак не может стать потенциальной дырой в безопасности и защите. Так-как элемент управляется браузером, а скрипту лишь остаётся анализировать Array-структуру, не имея к реальной файловой системе никакого доступа и отношения!
Вот теперь можете высказывать свои мнения. Очень прошу, однако, вникнуть в суть хоть чуточку. А не гноить сразу
|
|
01.11.2009, 19:53
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
Сообщение от Paguo-86PK
|
А содержимое реального файла преобразуется в "data": "base64, ... etc"...
|
У Вас первый же залетевший дятел разрушит цивилизацию.
|
|
01.11.2009, 20:13
|
|
Профессор
|
|
Регистрация: 16.09.2009
Сообщений: 253
|
|
В чём подвох, дрозды, дятлы
Сообщение от Gozar
|
У Вас первый же залетевший дятел разрушит цивилизацию.
|
Хоть убейте! Не понял, о чём Вы?
Сейчас эксперементировал с
document.getElementsByTagName("a")[0].href = "url(data:audio/mid; base64,TVRoZAAAAA...JAAAD/LwA=)";
думал, как и в случае с img.src проканает и ссылка будет сохраняемым миди-файлом. Не получилось
|
|
01.11.2009, 21:02
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от Paguo-86PK
|
Я скачал всю спецификацию в pdf-файле. Читал там и про тэги menu, progress, video и т.д.
|
Давайте не так: вы про dom storage прочитали? Эту статью читали? Какие куки вообще? И зачем вы их с помощью PHP устанавливаете?
Сообщение от Paguo-86PK
|
На сколько я понял, тэг menu должен выдавать уже не тупое ul-подобное меню-список, а реальное меню графического интерфейса.
|
Он вообще ничего не должен. Он семантику определяет, а не отображение.
Сообщение от Paguo-86PK
|
Кто о чём, а вшивый ламер - про canvas... Так я понял ваши намёки.
|
Нет, не так. Кто-то задачи реальные решает, а вшивый все в облаках летает. Причем все ваши проблемы решаются более простыми способами, нежели ваши фантазии.
|
|
|
|