小编Tom*_*man的帖子

使用Javascript的"好部分"的最佳方式

在Stackers的推荐下,我一直在阅读Crockford的优秀Javascript:The Good Parts.

这是一本很棒的书,但由于其中很多都致力于描述使用Javascript基本功能的最佳方式,我不确定如何在不重复许多其他Javascript程序员的努力的情况下将他的建议付诸实践.

以这段话为例,例如:

创建新对象时,可以选择应该是其原型的对象.Javascript提供的机制是混乱和复杂的,但它可以大大简化.我们将create为该Object函数添加一个方法.该create方法创建一个使用旧对象作为其原型的新对象.

if (typeof Object.create !== 'function') {
 Object.create = function(o) {
  var F = function () {};
  F.prototype = o;
  return new F();
}
Run Code Online (Sandbox Code Playgroud)

我可以手动将此代码添加到我的所有Javascript项目中,但跟踪所有内容将是一个巨大的痛苦.

是否有任何库实现了Good Part的建议,从而省去了必须跟踪它们(/物理地将它们全部输出)的麻烦?

javascript abstraction

14
推荐指数
1
解决办法
785
查看次数

为在线商店生成订单号的最佳方法?

我的在线商店中的每个订单都有一个面向用户的订单号.我想知道生成它们的最佳方法.标准包括:

  • 很容易通过电话说(例如,"m"和"n"是模棱两可的)
  • 独特
  • 校验和(矫枉过正?有用吗?)
  • 编辑:不显示已经有多少总订单(客户可能会发现您的第三个订单令人不安)

现在我正在使用以下方法(没有校验和):

def generate_number                
    possible_values = 'abfhijlqrstuxy'.upcase.split('') | '123456789'.split('')

    record = true
    while record
        random = Array.new(5){possible_values[rand(possible_values.size)]}.join
        record = Order.find(:first, :conditions => ["number = ?", random])
    end          
    self.number = random
end
Run Code Online (Sandbox Code Playgroud)

ruby checksum e-commerce

14
推荐指数
3
解决办法
1万
查看次数

无法在登录表单上放置电子邮件地址字段(Authlogic)

所以我使用这个user_sessions/new视图使Authlogic正常工作:

<% form_for @user_session, :url => user_session_path do |f| %>

  <% if @user_session.errors.present? %>
    Invalid username or password
  <% end %>

  <%= f.label :login %><br />
  <%= f.text_field :login %><br />
  <br />
  <%= f.label :password %><br />
  <%= f.password_field :password %><br />
  <br />
  <%= f.check_box :remember_me, :style => 'margin-right: 10px' %>
  <%= f.label :remember_me %><br />
  <br />
  <%= f.submit "Login" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

但是当我改变的时候

  <%= f.label :login %><br />
  <%= f.text_field :login %><br /> …
Run Code Online (Sandbox Code Playgroud)

authentication ruby-on-rails authlogic

14
推荐指数
2
解决办法
5348
查看次数

为什么我应该在"data-"前面添加自定义属性?

所以我使用的任何自定义数据属性都应以"data-"开头:

<li class="user" data-name="John Resig" data-city="Boston"
     data-lang="js" data-food="Bacon">
  <b>John says:</b> <span>Hello, how are you?</span>
</li>
Run Code Online (Sandbox Code Playgroud)

如果我忽略这一点,会发生什么不好的事吗?即:

<li class="user" name="John Resig" city="Boston"
     lang="js" food="Bacon">
  <b>John says:</b> <span>Hello, how are you?</span>
</li>
Run Code Online (Sandbox Code Playgroud)

我想一个坏处是我的自定义属性可能与具有特殊含义的HTML属性冲突(例如name),但除此之外,仅仅编写"example_text"而不是"data-example_text"会有问题吗?(它不会验证,但是谁在乎呢?)

html5 attributes custom-data-attribute

14
推荐指数
2
解决办法
3601
查看次数

Rails sanitize()方法有多好?

我可以对用户输入的文本使用ActionView :: Helpers :: SanitizeHelper #sanitize吗?我计划向其他用户显示这些文本?例如,它会妥善处理本网站上描述的所有案例吗?

此外,文档提到:

请注意,对用户提供的文本进行清理并不能保证生成的标记有效(符合文档类型)或格式正确.输出可能仍包含未转义的'<','>','&'字符和混淆浏览器.

处理这个问题的最佳方法是什么?Hpricot在显示之前通过已消毒的文本?

xss ruby-on-rails sanitize

14
推荐指数
3
解决办法
2万
查看次数

如何让我的网页在Google即时预览中看起来很棒?

当您在Google Instant Previews中查看我网站上的某个页面时,您会看到一条AJAX错误消息(由某些AJAX引起,该文件已准备就绪):

替代文字

我认为解决这个问题的方法是让我的javascript与Google的"浏览器"使用的任何javascript引擎兼容(就像人们可能为IE6设计的那样).

那么:Google Instant Previews能理解哪些JavaScript?

javascript cross-browser google-instant-previews

14
推荐指数
3
解决办法
2120
查看次数

助手和部分有什么区别?

从功能上讲,两者看起来都像基于某些参数生成HTML的子例程.

决定在特定环境中使用其中一种纯粹美学吗?

ruby ruby-on-rails

13
推荐指数
1
解决办法
836
查看次数

在Rails中不显眼的jQuery自动完成

我正在使用rails,但是在使用jQuery时不显眼地执行我的所有Javascript application.js.

不幸的是,这使得引用URL非常困难.例如,如果我想提供字段自动完成行为,我必须硬编码自动完成URL,application.js因为rails url_for不可用.

是否有可能application.js使用erb?我是否以错误的方式思考这个问题?

jquery ruby-on-rails unobtrusive-javascript

13
推荐指数
1
解决办法
6051
查看次数

从Ruby中的字符串中删除最后2个字符?

我正在收集所有用户的电子邮件地址,如下所示:

def self.all_email_addresses
  output = ''
  User.all.each{|u| output += u.email + ", " }
      output
end
Run Code Online (Sandbox Code Playgroud)

但是,我最终在电子邮件地址字符串上添加了一个",".

我怎样才能摆脱这个/有更好的方法来获得逗号分隔的电子邮件地址列表?

ruby ruby-on-rails

13
推荐指数
3
解决办法
2万
查看次数

Rails会话中存储的对象持续多长时间?

如果我session[:greeting] = "Hi!"在一个控制器动作中执行,我可以session[:greeting]在其他控制器动作中引用多长时间?

在用户关闭浏览器之前?

直到一定时间过去?

另外,如何配置此值?

session ruby-on-rails

13
推荐指数
1
解决办法
3588
查看次数