Регистрация  |  Вход

Динамическое обращение к Static Resources

Привет гуру.

Кто сталкивался подскажите с таким вопросом.

Надо подгружать на страницу статик ресурсы. Но не просто подгружать, а подгружать по динамическому имени и чтобы работало с unmanaged ресурсами из managed package.

Нашел такой вариант:

{$Resource[nameVar]}

Вроде работает, но не хочет видеть unmanaged resources. Пробовал и {$Resource['c__'+nameVar]} и {$Resource['c.'+nameVar]} не идет.

Попробовал по другому - формировать ссылку прямо в JS такого вида
https://c.ap4.visual.force.com/resource/1485189632040/{!nameVar}

Встал вопрос с этим timestamp (1485189632040). Это не просто текущее время я так понимаю. Вроде можно скормить любое, но заметил странную фигню - ресурсы стали грузиться не просто медленно и жудко медленно. В час по килобайту.

Я понимаю что это завязано на кэш, и повторная перезагрузка уже возвращает Not Modified. Изучал ли кто-нибудь этот вопрос - как правильно формировать этот timestamp.

Ну и не знаю, может мне кажется, но даже с повторыми запросами и возвратом из кэша ресурс грузится по 3-5 секунд - как блин долго для простого ответа с кодом 304. Может SF как-то отлавливает и наказывает таких умных как я?

Привет гуру.

Кто сталкивался подскажите с таким вопросом.

Надо подгружать на страницу статик ресурсы. Но не просто подгружать, а подгружать по динамическому имени и чтобы работало с unmanaged ресурсами из managed package.

Нашел такой вариант:

{$Resource[nameVar]}

Вроде работает, но не хочет видеть unmanaged resources. Пробовал и {$Resource['c__'+nameVar]} и {$Resource['c.'+nameVar]} не идет.

Попробовал по другому - формировать ссылку прямо в JS такого вида
https://c.ap4.visual.force.com/resource/1485189632040/{!nameVar}

Встал вопрос с этим timestamp (1485189632040). Это не просто текущее время я так понимаю. Вроде можно скормить любое, но заметил странную фигню - ресурсы стали грузиться не просто медленно и жудко медленно. В час по килобайту.

Я понимаю что это завязано на кэш, и повторная перезагрузка уже возвращает Not Modified. Изучал ли кто-нибудь этот  вопрос - как правильно формировать этот timestamp.

Ну и не знаю, может мне кажется, но даже с повторыми запросами и возвратом из кэша ресурс грузится по 3-5 секунд - как блин долго для простого ответа с кодом 304. Может SF как-то отлавливает и наказывает таких умных как я?


я всегда просто опускал эти цифры.
какая скорость если их убрать из урла?

я всегда просто опускал эти цифры. 
какая скорость если их убрать из урла?

Dmitry Shnyrev
Ну и не знаю, может мне кажется, но даже с повторыми запросами и возвратом из кэша ресурс грузится по 3-5 секунд - как блин долго для простого ответа с кодом 304. Может SF как-то отлавливает и наказывает таких умных как я?

Я не парюсь и не использкю timestamp. Бывают инстансы которые тупят и обновляют не сразу, но в общей массе все работает нормально.

[quote="Dmitry Shnyrev"]Ну и не знаю, может мне кажется, но даже с повторыми запросами и возвратом из кэша ресурс грузится по 3-5 секунд - как блин долго для простого ответа с кодом 304. Может SF как-то отлавливает и наказывает таких умных как я?[/quote]

Я не парюсь и не использкю timestamp. Бывают инстансы которые тупят и обновляют не сразу, но в общей массе все работает нормально.

О! Спасибо, не знал что можно без timestamp. Сейчас попробую.

О! Спасибо, не знал что можно без timestamp. Сейчас попробую.

Друзья, это чудо.

Я пока толком не знаю как объяснить, но первая загрузка отрабатывает быстро, а все последующие пишет 200 (from disk cache) и отрабатывает миллисекунды. Странно, что при работе с timestamp работает кеш именно на стороне SF 304 (Not Modified).

Спасибо за совет.

Друзья, это чудо.

Я пока толком не знаю как объяснить, но первая загрузка отрабатывает быстро, а все последующие пишет 200 (from disk cache) и отрабатывает миллисекунды. Странно, что при работе с timestamp работает кеш именно на стороне SF 304 (Not Modified).

Спасибо за совет.

Может кому пригодится.

StaticResource доступен в бэкэнде через SOQL. Timestamp ничто иное как поле SystemModstamp(Datetime) которое конвертировано в Long. Также есть NamespacePrefix поле которое помогает справиться с managed/unmanaged.

Может кому пригодится.

StaticResource доступен в бэкэнде через SOQL. Timestamp ничто иное как поле SystemModstamp(Datetime) которое конвертировано в Long. Также есть NamespacePrefix поле которое помогает справиться с managed/unmanaged.

Denis, спасибо за наводку. Интересный факт.
Меня только смушает один момент, насколько это расточительно каждый раз делать запрос за статик ресурсами при обращении к странице. Чисто гипотетический с точки зрения перфекционизма

Denis, спасибо за наводку. Интересный факт. 
Меня только смушает один момент, насколько это расточительно каждый раз делать запрос за статик ресурсами при обращении к странице. Чисто гипотетический с точки зрения перфекционизма :D