prefs: null,
startup : function()
{
// init prefs
...
this.retrieve_rate();
var context = this;
this.intervalID = setInterval(function()
{
context.retrieve_rate();
}, this.INTERVAL);
},
retrieve_rate : function()
{
var ajax = null;
ajax = new XMLHttpRequest();
ajax.open('GET', 'http://xyz.com', true);
var context = this;
ajax.onload = function()
{
// access prefs using context.
// e.g. context.prefs
}
}
На Linux Вы могли использовать inotifywait для автоматического выполнения команды каждый раз, когда содержание файла изменяется.
Редактирование: следующая команда фиксирует file.txt, как только она сохраняется:
inotifywait -q -m -e CLOSE_WRITE --format="git commit -m 'autocommit on change' %w" file.txt | sh
Если Вы знаете название файла, и Вы хотите контролировать только один (или несколько файлов), можно просто назвать "фиксацию мерзавца" каждыми несколькими минутами для достижения этого. Если файл не изменился, мерзавец будет просто жаловаться, и необходимо будет проигнорировать эту ошибку, но кроме который, не будет никакого повреждения.
, В дополнение к которому, Вы захотите отметить эти файлы как "автоматическую фиксацию", чтобы быть в состоянии фиксировать вручную также. Таким образом, пользователь видит автоматические изменения и также большие "логические" изменения, которые сопровождаются комментариями фиксации, чтобы объяснить, что это изменилось начиная с последней ручной фиксации.
, Например, используйте "АВТОМАТИЧЕСКУЮ ФИКСАЦИЮ" в качестве сообщения о фиксации. Позже, можно записать инструмент для чистки этих фиксаций с помощью журнала мерзавца (для обнаружения изменений для уничтожения), или можно попытаться создать АВТОМАТИЧЕСКУЮ ФИКСАЦИЮ ответвления использовать стратегию твердости коллизии грубой силы стучать в "ручных фиксациях".
Другая опция состоит в том, чтобы использовать низкоуровневые команды мерзавца для создания собственного специализированного репозитория.
Наконец, Вы могли скопировать файл в новое имя (" $filename.ac") при выполнении автоматических фиксаций для различения ручные и автоматические версии.
Я вполне уверен, необходимо было бы сцепить это в любого редактора, которого используют пользователи. Вы могли записать что-то для опроса относительно изменений, но в зависимости от шаблонов использования, частота запросов, возможно, должна была бы быть невероятно высокой, чтобы удостовериться, что она брала отдельные изменения вместо нескольких изменений.
Предыдущий ответ inotifywait отличный, но это не совсем полное решение. Как написано, это однократная фиксация однократного изменения файла. Это не работает в общем случае, когда при редактировании файла создается новый индексный дескриптор с исходным именем. inotifywait -m очевидно следует за файлами по индексу, а не по имени. Кроме того, после изменения файла не выполняется постановка для git commit без git add или git commit -a . Внеся некоторые изменения, вот что я использую в Debian для отслеживания всех изменений в моем файле календаря:
/etc/rc.local:
su -c /home/<username>/bin/gitwait -l <username>
/ home /
#!/bin/bash
#
# gitwait - watch file and git commit all changes as they happen
#
while true; do
inotifywait -qq -e CLOSE_WRITE ~/.calendar/calendar
cd ~/.calendar; git commit -a -m 'autocommit on change'
done
Это могло быть обобщенным для ожидания списка файлов и / или каталогов и соответствующих процессов inotifywait ,
У меня была та же проблема, и на Mac launchd предлагает отличное решение. он будет следить за файлом или каталогом, и если есть изменения, вы можете запустить приложение или что-нибудь еще ...
git-wip - отличное решение, которое мне подходит. { {1}} «НЗП» означает «незавершенное производство». Каждый раз, когда вы запускаете git wip, изменения переносятся в отдельную ветку. Его можно запустить из командной строки, но есть расширения для vim и emacs, позволяющие автоматически запускать git-wip при каждой записи файла.