这个要从无冷以及木木的博客说起了.看到了他们的首页文章的预加载以及平滑滚动,好喜欢.可是咱票子不够,买不起,所以还是看看自己鼓捣着玩玩吧. 看了木木的一篇文章Ajax平滑翻页+预加载 于是有了点想法.
我就想我现在用的主题没有侧栏.要是弄一个类似的效果,在右边加个小箭头,点击小箭头后主题整体向右移动,下一个页面显示一些链接,或者是公告神马的.感觉挺好.或者咱也可以弄个预加载翻页,那样效果就很赞了.
所以看了看木木的文章后,发现他没有分享那段最关键的php响应部分的代码,于是写个评论,得到的回复是”目前php端我就保留了这段代码和完整后台代码段,暂时不想分享……”
OK~~表示理解,自己的劳动成果,暂时不想分享是可以理解的. 那我只能自己想办法了.
灵感还是来自philna2主题. philna2主题中的ajax翻页和木木讲的预加载不是一个道理吗?只是一个是点击链接才加载,一个是预加载罢了. 所以我就看了 philna2.js中的翻页的js代码,找到了其中的ajax请求url,放在地址栏里面一请求,竟然只返回了文章列表,头部侧栏还有底部都没有返回任何数据,看来php响应是个关键.
所以翻遍philna2主题文件夹,发现了点头绪,根本的东西位于app/base/ajax.php部分,当然了还有夹杂在其他文件中的配合.
重头戏在此文件中,按照我的理解,服务器接受到了一个请求,就分析这个网址是正常的请求还是一个ajax请求. 这个可以从philnaIsAjaxURL()函数知道.
如果是ajax请求,就把请求的网址获取出来. getAjaxAction()函数调用了上面的philnaIsAjaxURL函数,然后根据结果做下一步动作. 如果是一个ajax请求的话,就会分析是何种类型的请求,是首页翻页的请求,还是文章页的上一篇下一篇导航的请求,还是评论翻页的请求,又或者是发表评论的请求. 然后……然后不知道怎么说了,有点乱,得整理一下.
但是我明白的是,首页翻页只返回文章列表用到的文件是app/dynamic_content.php文件,其中只有一个函数philnaDynamic(),这里面包含的是loop.php文件,所以当执行这个函数的时候,就只返回了loop.php中的数据,这里面不包含头部,侧栏,底部的任何信息. 当我把别的文件包含进来的时候,返回了包含进来的文件的数据加上文章列表,看来我的判断是正确的. 你可以使用如下的网址http://yourdomain.com/?paged=2&do=ajax&action=philnaDynamic 测试一下,看是否只返回了文章列表
额….没说出来什么东西.但是感觉有了点头绪了,但是又感觉说不出来,还是得好好理理思路…. 过两天再说吧 :jiong:
要是谁懂这些玩意的话,麻烦说说,没有别人的教程和指导,看这个,摸索这些玩意真的好累…
yinheli童鞋写的这个主题真的是非常非常强大.而且巨复杂 :???: …. 处处都有他的hook….
我应该不会放弃吧 :???: ,得研究一下这个玩意.