首页 > 唠唠叨叨 > 对PhilNa2的Ajax的一丁点理解

对PhilNa2的Ajax的一丁点理解

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


我应该不会放弃吧 :???: ,得研究一下这个玩意.
  1.   帅哥
    Japhia 五 26th, 2011 @ 16:52 | #1
    沙发! 回复 引用

    居然还能坐个沙发~  原来philna2是如此强大 哈哈

    •  Admin
      SayMe 五 26th, 2011 @ 17:05 | #2
      藤椅 回复 引用

      @Japhia ,必须得 如此强大.... 我估计短时间内是研究不透的....

评论提交中, 请稍候...

留言

0
NOTICE: You should type some Chinese word (like “你好”) in your comment to pass the spam-check, thanks for your patience!
Trackbacks & Pingbacks ( 0 )
  1. 还没有 trackbacks

无觅相关文章插件,快速提升流量