【发布时间】:2010-06-19 16:45:06
【问题描述】:
我在尝试制作 ajax/静态程序时遇到了一个令人费解的问题。我想要做的是允许静态链接的应用程序具有 ajax 动态 url,并且在页面刷新之前一切都很好。
问题:
PHP 看不到哈希,所以它只看到原始的 URI 请求。所以 PHP 会加载原始页面,然后 JQuery (Javascript) 用我想要的 # 之后的实际页面替换该页面。示例:
网址:localhost/index.php#!/search
导航到这个页面没问题,但是按刷新 php 可以:
网址:localhost/index.php
然后 javascript 去:
网址:#!/搜索
所以我实际上加载了两个页面......这很糟糕。
这是一个必须发生的问题,我注意到 facebook 这样做是为了缩短加载时间(与我想这样做的原因相同)。据我所知,他们能够可靠地检测哈希并将 $_SERVER['REQUEST_URI'] 替换为其内容,因此当您刷新时,您会从 localhost/index.php#!/search 获得 localhost/search。
我想知道是否有人对此有一点解决办法。我查看了服务器端 javascript,但经过大量谷歌搜索后,我并没有真正得到清晰的图片。
提前致谢
【问题讨论】:
-
我忘了补充一点,cookie 在这种情况下不起作用。如果用户没有按顺序浏览网站,他们将看到他们不想看到的页面。
标签: php ajax web-applications jquery