Я действительно думаю, что это зависит от многих факторов. У меня всегда есть «преждевременная оптимизация ...» в затылке.
В прежние годы я бросал каждую маленькую идею, которая приходила мне в голову, в приложение. Это часто приводило к тому, что «я сделал это круто, но я не потратил время, чтобы полностью понять проблему, которую пытаюсь решить; была ли проблема в любом случае?»
В настоящее время я использую очевидный подход (как и ваш), который быстр (без потери производительности при первой попытке), а затем анализирую, возникают ли у меня проблемы или нет.
Другими словами:
Как часто вам нужен доступ к этой информации с различных типов загруженных страниц (потому что, если вы загружаете информацию один раз без перезагрузки пользователя, вероятно, в любом случае нет смысла ее повторно загружать), умноженной на число одновременных клиенты?
Если вы запишите информацию в файл cookie на стороне клиента для быстрого доступа к JS, может ли быть причинен вред вашему приложению в случае злоупотребления (изменение без согласия приложения)? Замените «JS» и «cookie» без какого-либо автономного хранилища, как предлагает WHATWG, если применяется № 1.
«Быстрый» подход меня устраивает, потому что зачастую нет больших инвестиций в исследования до разработки. Если вы сделали это осторожно ... но тогда вы, вероятно, уже знаете этот ответ;)
Как 3. вы всегда можете отправить HTML-код своему клиенту, включая данные, которые вам нужны в JS, возможно, это может работать в вашем случае. Будет интересно посмотреть, какие еще предложения придут!
В качестве примечания: у меня также были сессии PHP, хранящиеся в БД, пока я не переместил их в memcached (alert: это кэш, а не постоянное хранилище, поэтому, может быть, это не очень хорошая идея для вашего случая живя с этим, я просто уверен, что он всегда выполняется), чтобы реализовать среднее падение 20% запросов к базе данных и, следовательно, 90% запросов на запись. И я еще даже не использовал какой-нибудь модный Ajax, только количество одновременно работающих пользователей.