Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.08.2012, 18:50
Новичок на форуме
Отправить личное сообщение для ainutoch Посмотреть профиль Найти все сообщения от ainutoch
 
Регистрация: 10.08.2012
Сообщений: 4

Файловый менеджер. Сильно не ругайте.
Прошу извинить, может не туда и не так влез. Имею домашний сервер под Apache, хочу http-ишный файловый менеджер. Для чего? Отдыхаю в Таиланде, мучаюсь на работе, понадобился файл с домашнего сервера, ну вот, нате вам! Ладно, это лирика. Менеджер хочу в стиле Win7, правую часть наваял (Perl+JS), верхнюю часть (с маршрутом) тоже вроде по моей скромной потенции, а вот с левой частью - беда... Никак не могу сообразить, КАК по нажатию этих треугольничков в готовой страницу вставлять новые элементы, а по закрытию - убирать элементы. Или это в JS+Perl слабо осуществимо? Коллега кричит - "Руби!!!", а я не понимаю - на хрена?
Ответить с цитированием
  #2 (permalink)  
Старый 10.08.2012, 20:03
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Кроме Javascript'а здесь ничего, во-первых, не нужно, а во-вторых, не поможет. Товарища с криками о руби можно послать лесом.

Схема такая: можете сразу выводить все элементы на страницу, скрыв некоторые (те, что изначально должны быть скрытыми), а потом показывать их по нажатию на нужные элементы.
Ответить с цитированием
  #3 (permalink)  
Старый 10.08.2012, 20:11
Новичок на форуме
Отправить личное сообщение для ainutoch Посмотреть профиль Найти все сообщения от ainutoch
 
Регистрация: 10.08.2012
Сообщений: 4

Схема такая: можете сразу выводить все элементы на страницу, скрыв некоторые (те, что изначально должны быть скрытыми), а потом показывать их по нажатию на нужные элементы.[/quote]

Спасибо, не пойдет. Это надо зачитать все дерево каталогов на диске 2Тб. Сколько времени будет работать такой скрипт?
Ответить с цитированием
  #4 (permalink)  
Старый 10.08.2012, 21:07
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

В таком случае можно по клику не показывать элементы, а вставлять их в документ, предварительно подгрузив их с помощью AJAX'а.
Ответить с цитированием
  #5 (permalink)  
Старый 10.08.2012, 22:03
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от ainutoch
Спасибо, не пойдет. Это надо зачитать все дерево каталогов на диске 2Тб. Сколько времени будет работать такой скрипт?
В LocalStorage - грузите все дерево - единожды - а далее лишь сортировка и редактирование - и синхронизация - ну тут голову слегка - поломать - но при загруженном дереве каталогов - долго не будет
Ответить с цитированием
  #6 (permalink)  
Старый 11.08.2012, 08:35
Новичок на форуме
Отправить личное сообщение для ainutoch Посмотреть профиль Найти все сообщения от ainutoch
 
Регистрация: 10.08.2012
Сообщений: 4

Спасибо.
Ну а динамически в нужное место HTML (<table>), зачитав perl-ом содержимое нужного каталога, никак не воткнуть? Темновато это для меня, простите... Или же только заново переформировывать страницу? Вроде возможно все хранить в hidden полях, но уж больно муторно получается. Нужно учитывать степень вложенности (для нужного смещения по горизонтали), флажок открытости/закрытости каталога и т.д.
Мне кажется, что читать зараз ВСЁ дерево каталогов - моветон.
Простите за надоедливость, все предложенное отвергаю не со зла.
Ответить с цитированием
  #7 (permalink)  
Старый 11.08.2012, 09:00
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,588

Сообщение от ainutoch Посмотреть сообщение
Спасибо.
Ну а динамически в нужное место HTML (<table>), зачитав perl-ом содержимое нужного каталога, никак не воткнуть? Темновато это для меня, простите... Или же только заново переформировывать страницу? Вроде возможно все хранить в hidden полях, но уж больно муторно получается. Нужно учитывать степень вложенности (для нужного смещения по горизонтали), флажок открытости/закрытости каталога и т.д.
Мне кажется, что читать зараз ВСЁ дерево каталогов - моветон.
Простите за надоедливость, все предложенное отвергаю не со зла.
Вам же сказали - AJAX.
Если страшит само слово - не бойтесь: на самом деле это просто запрос из javascript к серверу(к тому самому perl скрипту) и получение от него ответа(который можно вставить куда надо).)

Там даже пример похожий есть.
__________________
29375, 35

Последний раз редактировалось Aetae, 11.08.2012 в 09:08.
Ответить с цитированием
  #8 (permalink)  
Старый 12.08.2012, 22:41
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

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

Я так понял проблема в написании дерева каталогов?

Сообщение от ainutoch
Мне кажется, что читать зараз ВСЁ дерево каталогов - моветон
Ясен перес, моветон.

На сервере функция простая, читаем каталог с путем присланным из js AJAX.(Путь + выбранный каталог)

На клиенте строим дерево, достраивая один уровень по клику на + (плюсике), по клику на - (минус) убираем в display:none то что отстроили. Эдакое кэширование получиться, если есть дети и display:none, то запрос на сервер не делаем, а делаем display:block -> показ.

+
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #9 (permalink)  
Старый 12.08.2012, 22:51
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 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.
Ответить с цитированием
  #10 (permalink)  
Старый 13.08.2012, 18:21
Новичок на форуме
Отправить личное сообщение для ainutoch Посмотреть профиль Найти все сообщения от ainutoch
 
Регистрация: 10.08.2012
Сообщений: 4

Спасибо, люди добрые. Два дня читал, начало доходить, о чем вы говорите. Начну пробовать.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск