Gem 使用 Turbolinks 过程遇到的小坑

mingyuan0715 · 发布于 2013年7月02日 · 最后由 tarzansos 回复于 2013年7月05日 · 6462 次阅读
2329

rails4出来了嘛 先慢慢过渡,用上Turbolinks的插件。 结果页面加载之后需要再刷新一遍才能显示。

问题解决: If you have any script tags in the body you do not want to be re-evaluated then you can set the data-turbolinks-eval attribute tofalse

<script type="text/javascript" data-turbolinks-eval=false> console.log("I'm only run once on the initial page load"); </script>

共收到 16 条回复
1

说说 PJAX,Turbolink,以及 Basecamp 的前端方案 http://blog.chloerei.com/articles/834b424d-talk-about-pjax-turbolink-and-basecamp

3773

#1楼 @Rei  太有默契了哇,同时发一条相同内容的评论  哈哈

1

不过相比我上一篇文章写的时候,Turbolinks 又有了不少更新,顶楼问题就是新问题。

意思就是如果一个页面里面有 script 标签,那么用浏览器后退记录的时候就会再次执行它。有些场合是需要这样做的,比如 disqus,有些脚本就不能这样做,比如事件绑定,之前绑定的事件已经随着页面一起进了 turbolinks cache,如果再执行就会重复绑定,这时候就加个 data 段忽略掉。

3773

#5楼 @Rei 学习了,你列举的这个例子,Turbolinks 已经就是这也做的了?

1

#6楼 @ginchenorlee 我没读新的源码,看来要找时间再读一遍,这个标签我也是看这个贴才知道。事件绑定我也要做些实验。Turbolinks 要求开发者对 js 运行的生存周期有进一步的了解。

2329

#7楼 @Rei 我是记得看过这篇文章,今天想找来再阅读一遍,去了你以前的博客没找到。就去打开有道词典读文档去了~

2329

#7楼 @Rei javascript_include_tag 如何使产生的标签加上这个 <code>data-turbolinks-track</code>属性, 感觉无解。 </p>

586

Turbolinks 真的好坑啊。。。我第一时间去掉了。。。

4584

用了一段时间Turbolinks后,果断去掉……不过的确对页面的加载有提升……

2329

#10楼 @edokeh #11楼 @imlcl 我现在觉得很爽。。看着无刷新更新页面就舒坦。如果用了jquery的ready(),加上文档介绍的gemjquery-turbolinks

4584

#12楼 @mingyuan0715 我也有用jquery-turbolinks,可能我个人不怎么会用js……

1

#6楼 @ginchenorlee 正在读源码,发现之前理解错了。Turbolinks 后退的时候是不会执行 script 的。

data-turbolinks-eval=false 的意思是希望这段 script 只在直接访问的时候执行,Turbolinks.visit 访问的时候不执行。

楼主的问题要贴代码才能分析了。

4467

学习了

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册