Home > Archives > 对PhilNa2的Ajax的一丁点理解

对PhilNa2的Ajax的一丁点理解

Publish:

这个要从无冷以及木木的博客说起了.看到了他们的首页文章的预加载以及平滑滚动,好喜欢.可是咱票子不够,买不起,所以还是看看自己鼓捣着玩玩吧. 看了木木的一篇文章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….


我应该不会放弃吧 :???: ,得研究一下这个玩意.

声明: 本文采用 BY-NC-SA 授权。转载请注明转自: 对PhilNa2的Ajax的一丁点理解 - 自说Me话