Давайте перейдем к сути. Это то, что я хочу сделать: у меня есть куча пользовательских данных, которые я получаю с сервера. Я хочу кэшировать данные, чтобы не отправлять запросы на сервер каждый раз, когда мне нужно, скажем, адрес электронной почты или имя пользователя.
Итак, я бы построил такие функции, как getEmail, getUsername и т. Д., Которые делают Ajax-вызов один раз и сохраняют его в объекте. Если функция вызывается снова, она возвращает кешированный объект.
Приложение разделено на модули. Приложение содержит данные. Вот скрипка:
http://jsfiddle.net/Osoascam/Nk6aw/
(откройте консоль, чтобы увидеть результаты)
Конечно, делать что-то вроде этого:
var email = Module.Utilities.getEmail();
неверно, так как getEmail будет вызывать функцию Ajax, и, таким образом, электронная почта останется неопределенной даже после завершения вызова. (Я положил это в скрипку, чтобы показать, чего я пытаюсь достичь). Однако я не могу установить переменную внутри функции getEmail () или той, которая вызывает Ajax, так как несколько скриптов должны иметь возможность вызывать эту функцию и соответственно устанавливать свои переменные.
Какой лучший способ сделать это? Создание функций, которые получают часть объекта, возвращаемого вызовом Ajax, таким образом, что вызов выполняется только один раз ...
Заранее спасибо,
1019 * Óscar *