Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   RAM-Disk как DOM-объект (https://javascript.ru/forum/dom-window/5725-ram-disk-kak-dom-obekt.html)

Paguo-86PK 01.11.2009 04:12

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кб. А-ля простое окно со списком виртуальных файлов, их переименование/удаление, дата изменения... Т.е. виртуальный винт, возможно и с каталогами!

Gozar 01.11.2009 09:23

Цитата:

Сообщение от Paguo-86PK (Сообщение 34108)
На сколько перспективно просить W3C о введение в стандарт HTML DOM-модели объекта RAM-Disk?

На столько же, насколько просить производителей браузеров. W3C не закон и реализовывать что-то в нем описанное никто не обязан. Просить вообще вредно для нервной системы, нужно реализовывать самому.;)

Paguo-86PK 01.11.2009 10:07

Ну это понятно
 
Цитата:

Сообщение от Gozar (Сообщение 34111)
На столько же, насколько просить производителей браузеров. W3C не закон и реализовывать что-то в нем описанное никто не обязан. Просить вообще вредно для нервной системы, нужно реализовывать самому.;)

Реализовывать не обязаны, однако если стандарт есть, то в будущем предпримут попытки реализовывать хоть что-то из стандарта.

Реализовывать самому - я об этом думал. Начать бы хотя бы с переработки утилиты Virtual Floppy Disk Driver, исходники которой я изучал. А переработка вот какая:
Драйвер занимает под себя букву свободного диска (A: B: S: ...) и при переносе какого-нибудь файла в тот диск - проигрывает.
Скажем, нужно нам проиграть 5 mp3-файлов, мы тупо закидываем их в тот диск как в очередь. И они проигрываются по-очереди. Как WinAMP, но на более абстрактном уровне:)

Пользователи Total Commander меня поймут. Только вот моя идея не ограничивается таки оболочкой TC, а является виртуальным диском;)

Или вот чат: Заходишь в диск T: например, а там вместо файлов - сообщения заранее настроенного он-лайн чат-канала.

Конечно прочитав эти фантазии можно подумать, что я обкурился.:-E

Нет, просто я не потерял способности сохранять фантазиям крылья, не ломая их чьим-то консерваторскими рамками и постулатами:no:

Kolyaj 01.11.2009 11:11

Paguo-86PK,
давайте вы все-таки сначала весь HTML изучите (включая HTML5), а не только canvas, не говоря уж про JavaScript. А потом уже будете амбициозные предложения в W3C делать. А то ведь неловко может получиться. Гуглить можете начать с фразы DOM storage.

А все ваши рассуждения показывают, что вы не представляете, как работают браузеры, и какие проблемы им приходится решать. Так что рано вам фичи для них придумывать.

Paguo-86PK 01.11.2009 17:58

Консерватизм рулит?
 
Цитата:

Сообщение от Kolyaj (Сообщение 34114)
Paguo-86PK,
давайте вы все-таки сначала весь HTML изучите (включая HTML5), а не только canvas, не говоря уж про JavaScript. А потом уже будете амбициозные предложения в W3C делать. А то ведь неловко может получиться. Гуглить можете начать с фразы DOM storage.

А все ваши рассуждения показывают, что вы не представляете, как работают браузеры, и какие проблемы им приходится решать. Так что рано вам фичи для них придумывать.

:blink:
Я скачал всю спецификацию в pdf-файле. Читал там и про тэги menu, progress, video и т.д. В Опере и в Фоксе примеры не сработали, как описано в мануале. Так что, увы, изучил я почти всё, что показалось чужим моему глазу, да и интересным.
На сколько я понял, тэг menu должен выдавать уже не тупое ul-подобное меню-список, а реальное меню графического интерфейса. Или я не так читал?

А ввести в браузер виртуальный диск - так же легко, как добавлять ссылки страницы в избранное или делать её стартовой. А вот возмём Кукисы: это тоже своеобразный, сильно ограничений виртуальный файл под каждую страницу персонально. Я уже пытался делать менеджер виртуальной файловой системы на кукисах.
Работает, но чтобы извлечь/записать реальный файл нужны услуги PHP, что очень неудобно. Плюс, насколько я помню, ограничение там до 4кб!

А RAM-Disk в HTML - вполне можно сделать как ExCookies - продвинутые кукисы, но браузер также оснащён менеджером для них: Извлечь в файл, впихнуть файл... Плюс желательно подкаталоги ещё. Короче...

Ну в общем... Кто о чём, а вшивый ламер - про canvas... Так я понял ваши намёки.:D

Gozar 01.11.2009 18:53

Цитата:

Сообщение от Paguo-86PK (Сообщение 34136)
Так я понял ваши намёки.:D

Вы всё верно поняли, для того чтобы рассуждать на такие темы нужно хотя бы поверхностно представлять реальное положение вещей и уж тем более нужно знать что могут и чего не могут различные браузеры и почему.

Лично я рад, что у Вы не режете фантазиям крылья, но обсуждать мне с Вами просто нечего, у нас разный уровень, мы друг друга не понимаем.

Я сам например пришёл в js из php и считаю что ооп php мастдай, наверное многие считают что я не прав, но переживать по этому поводу я не буду.

Хотите что-то сделать, так делайте!

Paguo-86PK 01.11.2009 19:38

Кратко опишу суть элемента
 
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-структуру, не имея к реальной файловой системе никакого доступа и отношения!

Вот теперь можете высказывать свои мнения. Очень прошу, однако, вникнуть в суть хоть чуточку. А не гноить:no:сразу

Gozar 01.11.2009 19:53

Цитата:

Сообщение от Paguo-86PK (Сообщение 34142)
А содержимое реального файла преобразуется в "data": "base64, ... etc"...

У Вас первый же залетевший дятел разрушит цивилизацию.

Paguo-86PK 01.11.2009 20:13

В чём подвох, дрозды, дятлы
 
Цитата:

Сообщение от Gozar (Сообщение 34143)
У Вас первый же залетевший дятел разрушит цивилизацию.

Хоть убейте! Не понял, о чём Вы?:yes:

Сейчас эксперементировал с
document.getElementsByTagName("a")[0].href = "url(data:audio/mid; base64,TVRoZAAAAA...JAAAD/LwA=)";
думал, как и в случае с img.src проканает и ссылка будет сохраняемым миди-файлом. Не получилось:cray:

Kolyaj 01.11.2009 21:02

Цитата:

Сообщение от Paguo-86PK
Я скачал всю спецификацию в pdf-файле. Читал там и про тэги menu, progress, video и т.д.

Давайте не так: вы про dom storage прочитали? Эту статью читали? Какие куки вообще? И зачем вы их с помощью PHP устанавливаете?

Цитата:

Сообщение от Paguo-86PK
На сколько я понял, тэг menu должен выдавать уже не тупое ul-подобное меню-список, а реальное меню графического интерфейса.

Он вообще ничего не должен. Он семантику определяет, а не отображение.

Цитата:

Сообщение от Paguo-86PK
Кто о чём, а вшивый ламер - про canvas... Так я понял ваши намёки.

Нет, не так. Кто-то задачи реальные решает, а вшивый все в облаках летает. Причем все ваши проблемы решаются более простыми способами, нежели ваши фантазии.


Часовой пояс GMT +3, время: 13:10.