Был у кого-нить такой опыт?
Я тут в соседней теме по Javascript обсуждал этот вопрос.
Насколько я понял не надо ничего оптимизировать - страница запускается внутри iframe.
ВСЕ!
Страница ничего не знает про Lightning, ни Lightning ничего не знает что происходит внутри страницы - поддомены даже разные!
Опять же это применимо только для примитивных страниц.
Ты тоже когда-то говорил, что Lightning супер.
Это как понять примитивных?
Не сказал бы что страницы SPA c Ангуляром и тонной js являются примитивной. Хотя да, view state нет, rerender нет, даже input fields и тех нет.
SF разрабы не особо заморачивались с архитектурой - iframe сделали чтобы VF вставить и все. Для самой VF страницы разницы что ты ее пускаешь просто или внутри Lightning нет. (Есть один нюанс интересный, но я пока не могу его раскрывать - заказчик на ресерч потратил N $$$ поэтому это его интеллектуальная собственность
К тому же этот нюанс сильно напоминает костыль оставленный самими разрабами SF для того чтобы себе жизнь облегчить и есть вероятность что он пропадет)
Была замечена еще такая штука - в VF странице появляется sforce.one js объект. Но я пока не нашел ему применения, потому что в моем случае страницы используются как на стандартном SF так и с Lightning.
В двух словах запуск страницы VF в Lightning абсолютно тоже самое что вставка VF как inline page в Standard Layout.
Было дело что говорил
а потом было что говорил что лажа полная. Собственно на этом мнении и остановился ![]()
sforce.one досупен только внутри Lightning & Salesforce1. Его рекомендуют использовать для навигации когда window.location не доступен, например Visualforce внутри Lightning. Когда страницы используются и там и там, к твоем случае, придется лепить ифы и проверять если ли sforce.one.
Про нюанс и ресерч, SF подтверждает что есть что-то
There’s actually a way around this restriction, but you shouldn’t use it.
Да его уже все знаю, так что это не секрет.
Ну и условие только 1 раз нужно написать.
Да один, имелось ввиду наличие самой проверки.
Все знают и никто не признается! Во комьюнити ![]()
Ну короче палю фишку
Есть такой параметр - "isdtp=p1" (выглядит согласен нетипично, поэтому есть большая вероятность что он со временем поменяется или пропадет) и если его присобачить к iframe, то страница внутри ифрейма с Remote Action начинает работать. Просто так дефолтный страница с дефолтным адресом внутри ифрейма падает.
Вот и весь секрет.
Ваша очередь господа. Слушаю ваши откровения.
Я sforce.one и проверку его не использую потому что исторически сложилось. У меня активно используются # для ангуляровской навигации. И если использовать sforce для формирования ссылки он свой волшебный параметр присобачит как раз после # и ссылка работать не будет.
UPD: Все таки придется отказываться от # навигации
- уже много где она мешает работать с Lightning. Вот буквально пару минут назад переписал логику работы с GET параметрами на обычную JS парсилку. Получается что могу вернуться к sforce.one ![]()