提醒:本文最后更新于 4120 天前,文中所描述的信息可能已发生改变,请仔细核实。
前段时间,在周良及Tennfy那看到,解决主题comments-ajax.js在cdn缓存后,无法(使用ajax)回复的问题。对此,我之前的做法只是禁止cdn缓存此文件,便不作他想。
其原始解决办法是,在comments-ajax.js中的后面:
var i = 0, got = -1, len = document.getElementsByTagName('script').length;
while ( i <= len && got == -1){
var js_url = document.getElementsByTagName('script')[i].src,
got = js_url.indexOf('comments-ajax.js'); i++ ;
}
while ( i <= len && got == -1){
var js_url = document.getElementsByTagName('script')[i].src,
got = js_url.indexOf('comments-ajax.js'); i++ ;
}
添加:
js_url = js_url.replace('CDN地址','你的域名');
这样就可以解决这个问题了。
举个例子就是:
js_url = js_url.replace('kn007.b0.upaiyun.com','kn007.net');
为此,我做了点便民小修改,改为在“}”后面添加:
var dm = js_url.match(/http:\/\/([^\/]+)\//i);
js_url = js_url.replace(dm[1],'你的域名');
js_url = js_url.replace(dm[1],'你的域名');
这样就可以了,省了一步查看并填写cdn域名,只需填写自身域名即可。就不做例子了。
当然啦,最后别忘记刷新缓存。更新下cdn的comments-ajax.js文件
Wordpress在升级到3.6后,jQuery使用了1.10.2版本,并且使用了jQuery Migrate来兼容旧版jQuery代码。也就是多了次请求。
这个jQuery Migrate可以用来检测和恢复在jQuery1.9版本以上中已删除或已过时的API,不过多了个调用。这是不是提醒我们。要尽快使用新的jQuery函数功能?!
转载请注明转自:kn007的个人博客的《解决CDN后使jQuery Ajax Comments出错》
学习了,使用七牛云遇到了
@那时年少: 一直在用又拍云。。
哥已经试着淘汰willin这个了
@大发: 我觉得还是蛮实用的
@大发: 我看你那边还是加载了willin的
@大发: 不用willin的还有别的么。。。
@Tokin: 没看到哥的评论提交快的完全不象个男人么
@大发: 你应该说强劲有力,使女人...你懂的
@大发: 确实诶,怎么弄撒
七牛的缓存更新有点慢,又拍云快吗
@tennfy: 即时,部分节点5s内。又拍不是镜像类,是存储类的。
@tennfy: 刷新缓存规则:一行一个地址,一次最多50行。。。比较多的,我直接用ftp工具上传,几分钟的事
我也用回又拍云了。不过我没有用云存储,用的云镜像。就跟CDN差不多,不过是走的又拍的节点,还要1~2天才能正式开通
@郑杰: 又拍云有镜像么?
@郑杰: 我看到了,怎么申请呢?
学习了!
不知道D8主题的AJAX是怎么提交的,没有这个JS文件,郁闷,博主有空网上找个D8主题来看看?谢谢
@WordPress主题: 现在很少文件了,有些合并在整体js上。有些直接应用php,或者利用admin-ajax.php
@kn007: 0 0 那应该怎么搞呢
@WordPress主题: 你想干嘛吗?。。直接搜phphook的相关代码一看就知道了啊