![]() |
Модераторы: Sardar, Aliance |
![]() ![]() ![]() |
|
burakov |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 554 Регистрация: 28.7.2006 Репутация: нет Всего: нет |
Добрый день.
включил у себя activex написал скрипт сканирования каталогов рекурсивно хочу теперь чтобы файлы при сканировании построчно выводились в броузер - ну или как в примере в textarea вот код
поставил вроде и задержку, но страница все равно зависает , пока все файлы не отсканируются Вопрос, как сделать так, чтобы нашел мой GetFile файлик в каталоге и СРАЗУ отобразил его в textarea не дожидаясь конца сканирования каталога ... Спасибо... |
|||
|
||||
Itsys |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1338 Регистрация: 21.1.2008 Где: г. Москва Репутация: 12 Всего: 34 |
Пока работает процедура никакого обновления не будет.
Надо за один вызов процедуры ыполнять вывод только одного файла, т.е.: 1. Задал начальный путь 2. Вызвал процедуру 3. Выдал один файл и запомнил в глобальной переменной какой файл выдан 4. В конце процедуры setTimeout 5. Вызвал процедуру 6. Выдал файл, следующий за запомненым и запомнил в глобальной переменной какой файл выдан и т.д. с пункта 4 |
|||
|
||||
burakov |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 554 Регистрация: 28.7.2006 Репутация: нет Всего: нет |
Добрый день,
ничего у меня не получается... Такое впечатление , что пока js хоть чуть чуть думает (выполняет процедуру даже запущенную по timeout) никакого постепенного отображения не БУДЕТ!!! Кроме страничка на момент вычислений "зависает", так что допустим элемент select не раскрывается - вот пример тому следующий код
Как видно и цикл запускается по setTimeout и само отображение информации запускается по setTimeout. ОДНАКО зависание странички наблюдается КОНКРЕТНОЕ... Пока цикл for не закончится - ни какое такое мало мальски динамическое (постепенное) отображение document.write не наблюдается!!!! Друзья!!! Я хочу НЕВОЗМОЖНОГО от JS или что то не так делаю? Напомню таки чего хочется .... есть скрипт сканирования каталогов (на предмет файлов) рекурсивно для получения списка файлов и последующей его обработки. Но когда файлов много (2000 и более) страница (html) некрасиво зависает до окончания сканирования .... а я не хочу чтобы эффект зависания имел место, да к тому же хочу чтобы на странице динамично отображался результат работы скрипта - т.е. выводились бы имена файлов (ну пусть даже и не поименно, а хотя бы по несколько штук, т.е. за какой то период времени выраженный в миллисекундах т.е. небольшой ![]() Возможно ли такое сделать средствами JS??? Ведь есть же ajax и т.п. технологии. Как то ж люди добиваются эффекта более менее похожести работы web приложения на работу локальной программы!? Спасибо... |
|||
|
||||
burakov |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 554 Регистрация: 28.7.2006 Репутация: нет Всего: нет |
добрый день еще раз
![]() Покопался в инете и выяснил, что для того чтобы была динамика в отображении содержимого необходимо отказываться от операторов циклов и переносить все это в функции за запуском по setTimeout. И вообщем то заработало.... вот например код
делает то что мне надо, НО мне нельзя ведь FSO глобально объявлять - мне рекурсия нужна но на следующем коде пишет что "не определен параметр f" понимаю, что дело тут в области видимости объекта - но как правильно написать не пойму. пример кода
|
||||
|
|||||
Itsys |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1338 Регистрация: 21.1.2008 Где: г. Москва Репутация: 12 Всего: 34 |
Не увидел последнее собщение, но идея такова:
Добавлено через 1 минуту и 45 секунд ЗЫ Обрати внимание на сроки 22-24 |
|||
|
||||
burakov |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 554 Регистрация: 28.7.2006 Репутация: нет Всего: нет |
Спасибо. за ответы.
последний код немного запутан (для меня) но в принципе понятен. заменить цикл вложенными функциями у меня получилось... вопрос сейчас в следующем Не могу понять... почему wsh нормально отрабатывает мой скрипт рекурсивного сканирования каталогов (правда если файлов много как например в каталоге windows - говорит "Недостаточно памяти" - отчего такая ошибка - при использовании циклов такой ошибки не возникает!)
а вот в броузере точно такой же код НЕ РАБОТАЕТ ругается на то что объект s (не имеет определения) впрочем если убрать s, то тогда точно такое же ругательство говорит на объект f. подозреваю, что дело в области видимости - но ведь точно такой же код без проблем работает в WSH!!! Вот этот злополучный код...
Ну и наконец через эксперименты с областью видимости объектов удалось просканировать каталог с тем эффектом который мне нужен - правда за счет того что объект FSO создаю глобально рекурсивно такое сделать не получится КОД
Почему же все таки не получается прочесть файлы рекурсивно??? |
||||||
|
|||||||
Itsys |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1338 Регистрация: 21.1.2008 Где: г. Москва Репутация: 12 Всего: 34 |
В этом случае f и s надо вынести в глобальный контекст
|
|||
|
||||
brother79 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 471 Регистрация: 18.8.2009 Репутация: 1 Всего: 6 |
Sory, не так вопрос понял
![]() Это сообщение отредактировал(а) brother79 - 24.11.2009, 08:05 |
|||
|
||||
burakov |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 554 Регистрация: 28.7.2006 Репутация: нет Всего: нет |
Добрый день,
спасибо огромное за участие в конце концов все разрешилось.... Если объекты f, s объявить глобально - то скрипт НЕ РАБОТАЕТ. и вообщем то понятно почему... НО все дело оказалось в моем написании setTimeout Я его вызывал вот так
а почему то правильно работает так
хотя я синтаксис из справочника по js вроде бы подсмотрел :(. вообщем вот рабочий код скрипта
правда из-за этой вот псевдо многопоточности список файлов выходит хитрозадо ![]() но в принципе все заработало СПАСИБО. А как программно можно узнать что скрипт закончил работу.... ставлю на textarea onLoad но ничего не происходит? Это сообщение отредактировал(а) burakov - 24.11.2009, 10:50 |
||||||
|
|||||||
Itsys |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1338 Регистрация: 21.1.2008 Где: г. Москва Репутация: 12 Всего: 34 |
||||
|
||||
Itsys |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1338 Регистрация: 21.1.2008 Где: г. Москва Репутация: 12 Всего: 34 |
Хотя бы так:
|
|||
|
||||
burakov |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 554 Регистрация: 28.7.2006 Репутация: нет Всего: нет |
огромное спасибо за пример.
очень помогли ... СПАСИБО. |
|||
|
||||
![]() ![]() ![]() |
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |