10.08.2012, 18:50
|
Новичок на форуме
|
|
Регистрация: 10.08.2012
Сообщений: 4
|
|
Файловый менеджер. Сильно не ругайте.
Прошу извинить, может не туда и не так влез. Имею домашний сервер под Apache, хочу http-ишный файловый менеджер. Для чего? Отдыхаю в Таиланде, мучаюсь на работе, понадобился файл с домашнего сервера, ну вот, нате вам! Ладно, это лирика. Менеджер хочу в стиле Win7, правую часть наваял (Perl+JS), верхнюю часть (с маршрутом) тоже вроде по моей скромной потенции, а вот с левой частью - беда... Никак не могу сообразить, КАК по нажатию этих треугольничков в готовой страницу вставлять новые элементы, а по закрытию - убирать элементы. Или это в JS+Perl слабо осуществимо? Коллега кричит - "Руби!!!", а я не понимаю - на хрена?
|
|
10.08.2012, 20:03
|
|
⊞ Развернуть
|
|
Регистрация: 11.01.2010
Сообщений: 1,810
|
|
Кроме Javascript'а здесь ничего, во-первых, не нужно, а во-вторых, не поможет. Товарища с криками о руби можно послать лесом.
Схема такая: можете сразу выводить все элементы на страницу, скрыв некоторые (те, что изначально должны быть скрытыми), а потом показывать их по нажатию на нужные элементы.
|
|
10.08.2012, 20:11
|
Новичок на форуме
|
|
Регистрация: 10.08.2012
Сообщений: 4
|
|
Схема такая: можете сразу выводить все элементы на страницу, скрыв некоторые (те, что изначально должны быть скрытыми), а потом показывать их по нажатию на нужные элементы.[/quote]
Спасибо, не пойдет. Это надо зачитать все дерево каталогов на диске 2Тб. Сколько времени будет работать такой скрипт?
|
|
10.08.2012, 21:07
|
|
⊞ Развернуть
|
|
Регистрация: 11.01.2010
Сообщений: 1,810
|
|
В таком случае можно по клику не показывать элементы, а вставлять их в документ, предварительно подгрузив их с помощью AJAX'а.
|
|
10.08.2012, 22:03
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Сообщение от ainutoch
|
Спасибо, не пойдет. Это надо зачитать все дерево каталогов на диске 2Тб. Сколько времени будет работать такой скрипт?
|
В LocalStorage - грузите все дерево - единожды - а далее лишь сортировка и редактирование - и синхронизация - ну тут голову слегка - поломать - но при загруженном дереве каталогов - долго не будет
|
|
11.08.2012, 08:35
|
Новичок на форуме
|
|
Регистрация: 10.08.2012
Сообщений: 4
|
|
Спасибо.
Ну а динамически в нужное место HTML (<table>), зачитав perl-ом содержимое нужного каталога, никак не воткнуть? Темновато это для меня, простите... Или же только заново переформировывать страницу? Вроде возможно все хранить в hidden полях, но уж больно муторно получается. Нужно учитывать степень вложенности (для нужного смещения по горизонтали), флажок открытости/закрытости каталога и т.д.
Мне кажется, что читать зараз ВСЁ дерево каталогов - моветон.
Простите за надоедливость, все предложенное отвергаю не со зла.
|
|
11.08.2012, 09:00
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,583
|
|
Сообщение от ainutoch
|
Спасибо.
Ну а динамически в нужное место HTML (<table>), зачитав perl-ом содержимое нужного каталога, никак не воткнуть? Темновато это для меня, простите... Или же только заново переформировывать страницу? Вроде возможно все хранить в hidden полях, но уж больно муторно получается. Нужно учитывать степень вложенности (для нужного смещения по горизонтали), флажок открытости/закрытости каталога и т.д.
Мне кажется, что читать зараз ВСЁ дерево каталогов - моветон.
Простите за надоедливость, все предложенное отвергаю не со зла.
|
Вам же сказали - AJAX.
Если страшит само слово - не бойтесь: на самом деле это просто запрос из javascript к серверу(к тому самому perl скрипту) и получение от него ответа(который можно вставить куда надо).)
Там даже пример похожий есть.
__________________
29375, 35
Последний раз редактировалось Aetae, 11.08.2012 в 09:08.
|
|
12.08.2012, 22:41
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
Месяц назад написал двупанельный файловый менеджер. ИМХО, лучше однопанельного. Дерево делать не стал, нафиг. Оно не очень удобно, но хозяин - барин.
Я так понял проблема в написании дерева каталогов?
Сообщение от ainutoch
|
Мне кажется, что читать зараз ВСЁ дерево каталогов - моветон
|
Ясен перес, моветон.
На сервере функция простая, читаем каталог с путем присланным из js AJAX.(Путь + выбранный каталог)
На клиенте строим дерево, достраивая один уровень по клику на + (плюсике), по клику на - (минус) убираем в display:none то что отстроили. Эдакое кэширование получиться, если есть дети и display:none, то запрос на сервер не делаем, а делаем display:block -> показ.
+
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
12.08.2012, 22:51
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
+ /
1. клик по /
2. ajax запрос на сервер -> на сервере perl-ом читаем список корня и отдаем клиенту
3. клиент получает список и строит детей, затем меняет у родителя + на -
- /
+ Users
+ Document And Settings
+ Program Files
Пример с jquery
$.ajax({
type: "POST",
url: "dir.cgi",
data: { path: "/" },
dataType: "json"
}).done(function( list ) {
// отстраиваем детей, где list массив объектов [ { "name": "Users", "type": "dir"}, { "name": "ico.jpg", "type": "file"} ]
while (list) {
}
});
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Последний раз редактировалось Gozar, 13.08.2012 в 15:18.
|
|
13.08.2012, 18:21
|
Новичок на форуме
|
|
Регистрация: 10.08.2012
Сообщений: 4
|
|
Спасибо, люди добрые. Два дня читал, начало доходить, о чем вы говорите. Начну пробовать.
|
|
|
|