Возникла проблема следующего содержания: На сайте законадательно необходимо разместить банер в формате <iframe src="СайтПериодическиНедоступен"> Когда этот СПН периодически недоступен, то и мой сайт периодически недоступен. Если есть известные решения кроме убрать или не размещать баннер напишите.
Делать запрос к сайту через cURL, если все ок - формировать код с iframe, если нет - то какое-нибудь предупреждение "сайт x сейчас недоступен"
не понял вопроса. С cURL все еще сложнее будет. Ситуация такая обязуют на все мед. учереждения вешать банер одного минздравовского ресурса, на все страницы своего сайта. Я так понимаю что каждый посетитель любой страницы сайта мед. уч. заставляет формировать запрос к этому ресурсу, и он ложиться? Соответственно если делать с CURL всем то запросов будет в два раза больше. Объясните если я не прав
@MRSgiba, iframe - он ведь сам посебе - асинхронный. То есть, не должен замедлять загрузку сайта, тем более - делать его недоступным. Вот отсюда и вопрос: каким хитрым способом этот iframe встраивается, раз уж влечёт за собой такие проблемы? Или дело в чём-то другом?
Сайт на Bitrix, в нужное место шаблона вставляю код Код (Text): <iframe src="https://nok.rosminzdrav.ru/......" border="0" scrolling="no" allowtransparency="true" width="300" height="200" style="border: 0;"></iframe> Когда у них сайт доступен все нормально, когда у них лежит он уменя крутит и крутит, банер убираю все работает
@MRSgiba Идея в любом случаи плохая и лучше от фрейма отказаться но можешь через js загружать window.onload или попробуй в самом фрейме <iframe onload=>
@MRSgiba да быть такого не может. Ну создай функцию и запусти ее в самом конце html Код (Text): $(window).load(function() { var f = document.createElement('iframe'); f.src = url; f.width = 1000; f.height = 500; $('body').append(f); }); есть еще $( document ).ready() там точно все запустится когда страница будет готова
Браузер и у меня и у них пишет ожадание ответа от nok.rosminzdrav.ru, в итоге очень долго крутил, но отдал, внутри i-frame суб-фрейм Соединение сброшено, но ждал секунд 30, может минуту
ну если ты о спинере в табе... сделай в document.ready + еще timeout что бы уж точно грузить начал только после того как страница полностью загрузиться. Кто его знает как эти старые технологии работают) --- Добавлено --- Как вариант https://stackoverflow.com/questions/17759103/iframe-loading-time-limit-use-javascript
Спасибо всем, кто участвовал в данной теме, разобрался. В битриксе в дефолтной теме есть спиннер js-овый, который скрывает страницу до полной загрузки. Он пропадает благодаря добавлению класса в window.onload, так как iframe не доступен, он не дает завершиться и window.onload не срабатывает. Добавил скрипт после добавления класса и все решилось. Остался только один вопрос: если на 500 сайтов поставить баннер iframe и при 100 одновременных посетителях, их сервак получит 100*500 запросов? Я правильно понимаю?
@MRSgiba Это да. Потому таким никто и не пользуется. Сайты делают api по которым ты можешь получить информацию. Закешировать ее и т.д. Тут лучше тоже кэшировать. Скриптом по крону обновлять.