我有一个PHP重定向页面来跟踪对链接的点击.基本上可以做到:
- get url from $_GET
- connect to database
- create row for url, or update with 1 hit if it exists
- redirect browser to url using Location: header
我想知道是否可以先将重定向发送到客户端,这样它就可以继续进行工作,然后记录点击次数.是否会简单地围绕工作进行切换?
解决方法:
你可以这样做:
>从$_GET获取网址
>发送位置:标题
>拨打flush()
>连接到数据库
>为网址创建行,如果存在则按1命中进行更新
这不一定会导致浏览器立即运行,因为您的连接仍处于打开状态,并且浏览器对此进行了处理,但是(除非导致flush()无法正常工作的条件),它将在至少将Location:标头提供给浏览器,以便它可以根据需要进行重定向.
如果那还不够好,我建议将您的数据转储到每分钟或每秒的文件中,然后脚本将其提取出来进行后处理到数据库中.如果那还不够好,您可以玩pcntl_fork()
;否则,您可以玩.在Apache SAPI下,这是一件非常麻烦的事情.