То, о чем вы думаете, называется «регулирование»
Этот вопрос SO имеет решение для вас: Простой газ в js
Бесстыдная копия пасты выше:
// Returns a function, that, when invoked, will only be triggered at most once
// during a given window of time. Normally, the throttled function will run
// as much as it can, without ever going more than once per `wait` duration;
// but if you'd like to disable the execution on the leading edge, pass
// `{leading: false}`. To disable execution on the trailing edge, ditto.
function throttle(func, wait, options) {
var context, args, result;
var timeout = null;
var previous = 0;
if (!options) options = {};
var later = function() {
previous = options.leading === false ? 0 : Date.now();
timeout = null;
result = func.apply(context, args);
if (!timeout) context = args = null;
};
return function() {
var now = Date.now();
if (!previous && options.leading === false) previous = now;
var remaining = wait - (now - previous);
context = this;
args = arguments;
if (remaining <= 0 || remaining > wait) {
if (timeout) {
clearTimeout(timeout);
timeout = null;
}
previous = now;
result = func.apply(context, args);
if (!timeout) context = args = null;
} else if (!timeout && options.trailing !== false) {
timeout = setTimeout(later, remaining);
}
return result;
};
};
IANAL, и при этом я не играю один в Интернете. Получите компетентную юридическую консультацию в своей юрисдикции перед продолжением чего-то вроде этого.
A) Да, нет, да. B) Да. C) Да.
Теперь, относительно того, морально ли это, чтобы сделать все те вещи, ну, в общем, это - другой вопрос. Я ожидал бы, что люди, вероятно, расстроили бы клеща, если бы Вы не внесли свои изменения назад (это быть не в духе GPL), но обеспечение вывода программы (HTML, и т.д.) не считается как перераспределение. AGPL, с другой стороны, действительно имеет это ограничение, для остановки точно этого вида вещи.
GPL требует, чтобы Вы поставили исходный код целого приложения под GPL, при перераспределении программного обеспечения publicily. Вы не делаете этого так, Вы не будете иметь к. Компании как Google и Yahoo делают удобное использование из этого.