我正在用PHP构建一个相当大而复杂的CMS,我的计划是在它的某些部分实现缓存(可以为特定的页面/部分打开/关闭缓存).经过一些研究后,我得出结论,使用URL将是查找和检索cahced文件的最佳实践.我的目的是实现一个"整页"解决方案,以避免对应该缓存的所有页面进行突出的查询缓存并缓存整个页面.
伪代码将像这样(日期修改排除):
$filename = md5($the_full_url);
if (file_exists($filename)) get_cached_file($filename);
else write_cached_file($filename);
Run Code Online (Sandbox Code Playgroud)
这种方法可以被视为良好做法吗?
我正在为平板电脑/智能手机构建这个具有滑动功能的图片库。我在 iPad 上得到了非常奇怪的结果,所以我决定一直跟踪到开始,并在不同事件发生时打印出来。
以下代码应该在我用手指完成滑动后发出类似以下内容的警报:“start.move.move.move.end”(“移动”的次数由滑动操作的时间长短决定)。
itemWrap[0].ontouchstart = function(e) {
_self.msg.push("start");
}
itemWrap[0].ontouchmove = function(e) {
_self.msg.push("move");
}
itemWrap[0].ontouchend = function(e) {
_self.msg.push("end");
// join messages and alert to browser
msg = _self.msg.join(".") || "empty";
alert(msg);
}
Run Code Online (Sandbox Code Playgroud)
然而,我收到了非常奇怪的警报,并且它们在 Android/iOS 设备上差异很大。在 Android 上,大多数时候结果看起来都符合预期:
“开始.移动.移动.移动.移动.结束”
“start.end”(轻拂屏幕时)
“start.move.start.end”(每次其他触摸操作都会发生这种情况)
但在 iPad 上我得到了一些非常奇怪的结果。在第一次触摸操作中,我得到了我所期望的结果,但在第二次触摸时,包含结果的警报(“start.move.move.move.end”)在触摸屏幕时立即触发,并且它始终包含之前的结果。当我第三次触摸屏幕时,它再次返回到常规操作,并且对于所有其他触摸操作也是如此。
我四处寻找有类似问题的人,但我似乎得到的最接近的是用户在多点触控操作方面遇到问题(我对此不感兴趣)。关于为什么会发生这种情况有什么建议吗?