html缩小后,Swipe.js停止工作

时间:2014-05-04 06:37:51

标签: php jquery regex swipe.js

由于远程数据库导致时间滞后,我正在开发一个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函数都没有受到缩小的影响。

1 个答案:

答案 0 :(得分:0)

解决了。这是minified文件基本上是一行的结果,javascript注释的双斜杠//将所有JS转换为该注释的延续,因此不起作用。

我从模板中删除了javascript注释,一切都很好用。

我原本打算在我的正则表达式中添加JS注释,但由于所有模板中只有一条JS注释,因此删除注释更容易,而不是在代码中添加额外的处理。