由于远程数据库导致时间滞后,我正在开发一个PHP / cron脚本,从CMS中获取网页并将其保存为静态网页。然后为访问者提供静态网页。我还决定在保存之前尝试缩小生成的html文件。所有上述工作都很好(获取,删除注释,缩小,保存),但swipe.js停止工作。
我的基本代码是:
// get the webpage from CMS
$contents = file_get_contents($cms_url);
// remove comments
$contents = preg_replace('/<!--(?!\s*(?:\[if [^\]]+]|<!|>))(?:(?!-->).)*-->/Uis', '', $contents);
// minify
$contents = preg_replace('/^\s+|\n|\r|\s+$/m', '', $contents);
// delete old cached copy
unlink($web_url);
// save new copy
file_put_contents($web_url , $contents);
经过大量的实验,我得出结论,删除换行符(\ n)后swipe.js问题就开始了。
之前是否有人处理此问题?这是一个jQuery问题与他们寻找孩子的方式,因为这似乎是滑动确定正确的divs的方式?或者它是一个swipe.js问题?或者这是我删除换行符的方式?或??
附加说明----
通过使用第三方html缩小工具进行了更多的微观方面试验,并且这些缩小文件会出现同样的问题。所以我的PHP代码不是促成因素。
这似乎是jQuery或Swipe.js的一个问题,因为一旦删除了新的行字符,目标内容包装器div就不会被修改。
Swipe.js位于外部文件中,因此我的minifaction不会修改html文件。
页面上的其他jQuery函数都没有受到缩小的影响。
答案 0 :(得分:0)
解决了。这是minified文件基本上是一行的结果,javascript注释的双斜杠//将所有JS转换为该注释的延续,因此不起作用。
我从模板中删除了javascript注释,一切都很好用。
我原本打算在我的正则表达式中添加JS注释,但由于所有模板中只有一条JS注释,因此删除注释更容易,而不是在代码中添加额外的处理。