Back

开源项目中 一段 很典型的 低质量代码

发布时间: 2015-10-26 06:31:00

<script type='text/javascript'><!--//--><![CDATA[//><!--
/*
if (history && history.replaceState) {
  if ($('filter_link')) $('filter_link').writeAttribute('data-remote');
  if ($$('.pagination')) {
    $$('.pagination a').invoke('writeAttribute','data-remote');
    $$('.pagination a').invoke('observe', 'click', function(){
      <%= p = Hash.new
       p.update('page' => params[:page].to_i) if params[:page]
       p.update('monitored' => 'true') if @monitored
       modify_history('pushState', @forum.name, "#{@forum.permalink}.html
", p) %>
    });
  }
};
*/
//--><!]]></script>

这段代码,来自于 tidev.in 论坛,基于 beast 开源论坛。

作用是把will paginate分页变成 ajax 更新的方式。

这段代码, 有几个点:

1. 是非常典型的混合式编程。 js 中混入了 ruby

2. 把简单的东西复杂化。  直接用 最原始的HTML方式打开就可以了。

3. 没有使用jquery, 却使用了 prototype.

4. 上述的JS代码,写在了下面这段  鸡肋代码中。额。太可怕了。:

<script type='text/javascript'><!--//--><![CDATA[//><!--

//--><!]]></script>

Back