Сохраните удаленный каталог актуальным

Как отметил @FelixKling, наиболее вероятным сценарием является то, что узлы, которые вы ищете, еще не существуют.

Однако современные методы разработки часто могут манипулировать элементами документа за пределами дерева документов либо с DocumentFragments, либо просто отсоединением / повторным подключением текущих элементов напрямую. Такие методы могут использоваться как часть шаблонов JavaScript или для предотвращения чрезмерных операций перерисовки / переплавки, в то время как элементы, о которых идет речь, сильно изменяются.

Аналогично, новая функциональность «Теневой DOM» развертывается в современных браузерах позволяет элементам быть частью документа, но не обрабатываться запросом document.getElementById и всеми его методами sibling (querySelector и т. д.). Это делается для инкапсуляции функциональных возможностей и, в частности, скрыть его.

Опять же, скорее всего, элемент, который вы ищете, просто (пока) в документе, и вы должны сделать, как предлагает Феликс , Тем не менее, вы также должны знать, что это все чаще является не единственной причиной того, что элемент может быть необоснованным (временно или постоянно).

39
задан Charles 9 November 2011 в 17:06
поделиться

9 ответов

Как "в реальном времени" Вы хотите синхронизацию? Я все еще склонился бы к rsync, так как Вы знаете, что это будет полностью поддерживаемым на обеих платформах (Windows также с cygwin), и можно выполнить его через задание крона. У меня есть суперпростой файл удара, что я работаю на своей системе (это делает не , удаляют старые файлы):

#!/bin/sh
rsync -avrz --progress --exclude-from .rsync_exclude_remote . remote_login@remote_computer:remote_dir    

# options
#   -a  archive
#   -v  verbose
#   -r  recursive
#   -z  compress 

Ваш лучший выбор состоит в том, чтобы настроить его и испытать его. -n (--dry-run) опция является Вашим другом!

Имеют в виду, что rsync (по крайней мере, в cygwin) не поддерживает unicode имена файлов (с 16 августа 2008).

17
ответ дан Anton Rudeshko 27 November 2019 в 02:26
поделиться

Можно также использовать Выборку в качестве клиента SFTP, и затем отредактировать файлы непосредственно на сервере из этого. Существуют также SSHFS (смонтируйте ssh папку как Объем), опции. Это в соответствии с тем, какой сказанный stimms - действительно ли Вы уверены, что хотите материал, сохраненный в синхронизации, или просто хотите отредактировать файлы на сервере?

OS X имеет свою собственную систему уведомлений о файле - это - то, на чем Центр внимания основан. Я не услышал ни о какой программе, которая использует это, чтобы тогда сохранить вещи в синхронизации, но это, конечно, мыслимо.

я лично использую RCS для этого типа вещи:-, пока это имеет ручной аспект, маловероятно, что я хочу продвинуть что-то к даже тестовому серверу от моей dev машины, не тестируя его сначала. И если я работаю над сервером разработки, тогда я использую одну из опций, данных выше.

0
ответ дан Matthew Schinckel 27 November 2019 в 02:26
поделиться

Будет Dropbox ( http://www.getdropbox.com/ ) делает то, что Вы хотите?

1
ответ дан Scott 27 November 2019 в 02:26
поделиться

Это походит, возможно, что Вы решаете неправильную проблему. При попытке отредактировать файлы на удаленном компьютере тогда, Вы могли бы попытаться использовать что-то как плагин ftp для jedit. http://plugins.jedit.org/plugins/?FTP Это гарантирует, чтобы у Вас была только одна версия файла, таким образом, это никогда не может быть вне синхронизации.

1
ответ дан stimms 27 November 2019 в 02:26
поделиться

Эти rsync решения действительно хороши, особенно если Вы только продвигаете изменения один путь. Другой большой инструмент unison - он пытается синхронизировать изменения в обоих направлениях. Читайте больше в домашняя страница Унисона .

2
ответ дан Pat Notz 27 November 2019 в 02:26
поделиться

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

при использовании Linux, хотя, учитесь использовать rsync. Это действительно не настолько трудно, поскольку можно протестировать каждую команду с-n. Пройдите страница справочника , основной формат, который Вы захотите,

rsync [ОПЦИЯ...] SRC... [USER@] HOST:DEST

команда, которую я выполняю со своего школьного сервера на мою домашнюю резервную машину, это

, rsync-avi - удаляют ~ me@homeserv: ~/School/>> BackupLog.txt

Это берет все файлы в моем корневом каталоге (~) и использует режим архивирования rsync (-a), verbosly (-v), списки весь сделанный (-i) изменений, при удалении любых файлов, которые больше не существуют (-удаляют), и помещает в Папку,/home/me/School/на моем удаленном сервере. Вся информация, которую это распечатывает (что было скопировано, что было удалено, и т.д.) также добавляется в файл BackupLog.txt

, я знаю, что это - ураганный тур по rsync, но я надеюсь, что это помогает.

2
ответ дан icco 27 November 2019 в 02:26
поделиться

Для обнаружения измененных файлов Вы могли попробовать fam (монитор изменения файла) или inotify. Последний является определенным для Linux, fam имеет bsd порт, который мог бы работать над OS X. У обоих есть инструменты пространства пользователя, которые могли использоваться в сценарии вместе с rsync.

4
ответ дан Marie Fischer 27 November 2019 в 02:26
поделиться

То, что Вы хотите сделать для удаленного доступа Linux, является использованием 'sshfs' - Файловая система SSH.

# sshfs username@host:path/to/directory local_dir

Тогда обработка это как сетевое монтирование, которое это...

[еще 116] деталь, как то, как настроить его так, можно сделать это как обычный пользователь, на мой блог

, Если Вы хотите асинхронное поведение winSCP, Вы захотите использовать rsync, объединенный с чем-то, что периодически выполняет его. Решение для крона выше работ, но может быть излишество для winscp варианта использования.

следующая команда будет выполнять rsync каждые 5 секунд для продвижения содержания к удаленному хосту. Можно скорректировать время сна по мере необходимости для сокращения загрузки сервера.

# while true; do rsync -avrz localdir user@host:path; sleep 5; done

, Если Вы имеете очень большую структуру каталогов и должны уменьшить издержки опроса, можно использовать, 'найдите':

# touch -d 01/01/1970 last; while true; do if [ "`find localdir -newer last -print -quit`" ]; then touch last; rsync -avrz localdir user@host:path; else echo -ne .; fi; sleep 5; done

И я сказал, что крон может быть излишеством? Но по крайней мере это все просто сделано из командной строки и может быть остановлено через ctrl-C.

КБ

8
ответ дан KevinButler 27 November 2019 в 02:26
поделиться

Создавая прочь из предложения icco SVN, я на самом деле предположил бы, что при использовании подрывной деятельности или подобные для управления исходным кодом (и если Вы не, необходимо, вероятно, запустить) можно усовершенствовать продуктивную среду путем помещения команды для обновления репозитория в рычаг постфиксации.

существует много переменных в том, как Вы хотели бы сделать это, но что я видел, что работа, имеют разработку, или живой сайт быть рабочей копией и затем иметь постфиксацию используют ssh ключ с принудительной командой, чтобы войти в удаленный сайт и инициировать svn на рабочей копии. Кроме того, в рычаге постфиксации Вы могли инициировать экспорт svn на удаленной машине или локальное (к репозиторию SVN) svn экспорт и затем rsync к удаленной машине.

я был бы взволнован по поводу вещей, которые обнаруживают изменения и продвигают их, и я был бы даже взволнован по поводу вещей, которые работали каждую минуту, только из-за условий состязания. Как Вы знаете, что это не собирается передавать файл в тот же самый момент, в который это пишется? Задержка через это несколько раз и Вы потеряете все экономящее время преимущество, которым Вы имели постоянно rsyncing или подобный.

1
ответ дан Daniel Papasian 27 November 2019 в 02:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: