PHP HttpRequest创建一个网页 - 如何处理长响应时间?

时间:2014-05-26 00:28:01

标签: javascript php xmlhttprequest httprequest

我目前在静态html页面上使用javascript和XMLHttpRequest来创建Zotero中的记录视图。这很好用,除了一件事:页面标题。

我当然也可以更改<title>...</title>标记,但如果有人想将视图发布到例如Facebook,则会在网页上显示静态标题。

我无法用任何方式来解决这个问题只需使用javascript的静态页面。我相信我需要一个动态创建的页面来自服务器,它执行与XMLHttpRequest类似的东西。

对于PHP,有HTTPRequest。现在来问题了。在javascript版本中,我可以使用异步调用。使用PHP我认为我需要同步调用。这有点担心吗?

是否有其他方法可以处理这个我不知道的事情?

更新:看起来那些试图回答的人根本不熟悉Zotero。我应该更清楚。 Zotero是位于http://zotero.org/的参考数据库。它有一个可以通过XMLHttpRequest使用的API(这就是我上面所说的)。

现在我不能在我上面描述的场景中使用它。所以我想从我的服务器调用Zotero服务器。 (通过PHP或其他东西。)

(如果您不熟悉这些概念,可能很难理解并回答这个问题。当然。)

更新2:对于那些对Facebook如何删除您发布的网址感兴趣的人,请在此处测试:https://developers.facebook.com/tools/debug

通过测试可以看出,没有运行javascript。

2 个答案:

答案 0 :(得分:1)

很抱歉,我不确定我是否理解您要问的内容,您是否只想更改网页标题?

为什么不使用javascript?

document.title = newTitle

答案 1 :(得分:1)

Facebook希望在获取页面时出现标题(或opengraph:title标签)。它不会为你填写空白而使用任何JavaScript。

一个很酷的解决方法是通过解析用户代理字符串来检测Facebook刮刀,并使​​用PHP而不是JavaScript填充的信息提供页面版本。

据我所知,Facebook刮刀将此标题用于用户代理:"facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)"

您可以检查标题中是否存在该字符串的一部分并相应地加载页面。

if (strpos($_SERVER['HTTP_USER_AGENT'], 'facebookexternalhit') !== false)
{
    //synchronously load the title and opengraph tags here.
}
else
{
    //load the page normally
}