Допустим, у моего расширения Firefox есть несколько предпочтений, но некоторые из них сгруппированы, например, интервал проверки, интервал повторных попыток, URL назначения. Они используются только в одной функции.
Когда я подписываюсь на услугу предпочтений и добавляю наблюдателя, для каждого измененного предпочтения будет вызываться обратный вызов observe
, поэтому, если пользователь случайно изменил все настройки в группе, мне придется выполнить ту же процедуру одна и та же подсистема столько раз, сколько у меня есть элементов в этой группе предпочтений. Это большая избыточность!
Я хочу, чтобы observe
вызывался только один раз для группы предпочтений. Say
extensions.myextension.interval1
extensions.myextension.site
extensions.myextension.retry
, поэтому, если один или все эти параметры изменены, я получу только 1 уведомление об этом. Другими словами, независимо от того, сколько предпочтений изменилось в ветви, я хочу, чтобы обратный вызов observe
был вызван один раз.