Facebook iframe app - как организовать и написать код для быстрой загрузки страницы - PHP SDK - PullRequest
2 голосов
/ 08 ноября 2011

Я пишу приложение в фрейме Facebook и не знаю, как лучше это написать.Первоначально я написал весь код в основном файле canvas.php, но обнаружил, что все работало слишком медленно, прежде чем результаты были загружены в iframe.

Затем я попытался использовать метод определения местоположения заголовка php, чтобы попытаться загрузить другой файл.страниц в iframe, тем самым сокращая время загрузки страницы.Тем не менее, местоположение заголовка игнорируется.

Я также пытался использовать javascript для загрузки страницы в iframe вместо этого, это действительно загружает на новой странице, но страница испытывает много проблем.Он не передаст парраметры себе, используя $ _GET.

По сути, мне нужно выполнить некоторые проверки, когда страница холста сначала загружается в iframe, а затем перенаправить в другой файл, чтобы избежать выполнения проверок при каждой загрузке страницы, поскольку это серьезно показывает все вниз.Затем мне нужно перезагрузить страницу с разными параметрами в URL, чтобы заполнить iframe разными результатами, опять же, это очень медленно, так как нужно снова выполнить все проверки.

Поэтому, как я могу добиться гладкогорабочий процесс как обычный сайт в фрейме Facebook?

[EDIT] Только что подумал, является ли Ajax верным вариантом?

Большое спасибо заранее.

1 Ответ

0 голосов
/ 14 января 2012

Большинство людей испытывают медленное время отклика из-за отсутствия указанного channelURL. Смотри http://developers.facebook.com/docs/reference/javascript/

Файл канала

Файл канала решает некоторые проблемы с междоменной связью в определенных браузерах. Содержимое файла channel.html может быть просто одна строка:

Важно, чтобы файл канала кэшировался до тех пор, пока возможный. При обслуживании этого файла вы должны отправить действительные заголовки Expires с длительным сроком годности. Это гарантирует, что файл канала кэшируется браузером, что важно для беспроблемного взаимодействия с пользователем. Без надлежащего кэширования междоменная связь станет очень медленный и пользователи будут страдать от сильно ухудшенного опыта. Просто способ сделать это в PHP это:

Параметр channelUrl является необязательным, но рекомендуется. Предоставление Файл канала может помочь решить три конкретные известные проблемы. Первый, страницы, содержащие код для связи между кадрами, могут стать причиной Плагины отображаются как пустые без channelUrl. Во-вторых, если нет channelUrl предоставляется, и страница включает в себя автоматическое воспроизведение аудио или видео, пользователь может услышать два потока аудио, потому что страница имеет был загружен второй раз в фоновом режиме для кросс-домена коммуникации. В-третьих, файл канала предотвратит включение дополнительных хиты в ваших журналах на стороне сервера. Если вы не укажете channelUrl, вы можно удалить просмотры страниц, содержащие fb_xd_bust или fb_xd_fragment параметры из ваших журналов, чтобы обеспечить правильный счет.

channelUrl должен быть полным URL-адресом, соответствующим странице на который вы включаете в SDK. Другими словами, файл канала домена должен включать www, если ваш сайт обслуживается с использованием www, и если вы измените document.domain на вашей странице вы должны сделать такой же document.domain изменить в файле channel.html. Протоколы также должны матч. Если ваша страница обслуживается через https, ваш channelUrl также должен быть HTTPS. Не забудьте использовать соответствующий протокол для скрипта src как Что ж. Пример кода выше использует относящиеся к протоколу URL, которые должны правильно обрабатывать большинство случаев https.

...