06 November 2014

前言

现代浏览器中,js插件无疑是强大的。但是,太多乱七八糟的js插件,确实令人讨厌。而且,每一个js插件,以及每个gem包,都意味着一个新的学习点。所以,想要将削减一些无用的学习点。

前台中的js

jquery.js和jquery_ujs.js

bootstrap.js其中包含如下的js插件: jquery.datepicker.js, bootstrap-transition.js bootstrap-alert.js bootstrap-modal.js bootstrap-dropdown.js bootstrap-scrollspy.js bootstrap-tab.js bootstrap-tooltip.js bootstrap-popover.js bootstrap-button.js bootstrap-collapse.js bootstrap-carousel.js bootstrap-typeahead.js bootstrap-affix.js

jquery-ui-1.9.2.custom.min.js : jquery ui的

jquery.ias.js :

jquery.powertip.min.js : 提示插件

jquery.masonry.min.js : 瀑布流布局的插件,与 ias插件协同使用。

jquery.styleSelect.min.js : 自定义下拉风格的插件

jquery.Jcrop.js : 上传头像截取头像,原本以为是用minimagic的gem包处理的,

jquery.select-1.3.6.js : 下拉选择插件

jquery.format_currency.js : 格式化货币, 两个使用接口:formatCurrency和toNumber

jquery.placeholders.min.js : 输入框的占位符

jquery.cookie.js : 设置网站的cookie的

jquery.smart_autocomplete.js : 自动补全插件.

jquery.validate.min.js : 验证插件,项目存在很多插件相关的js或者rails的gem包。

hogan.js : javascript模板引擎,mustcache模板(曾做过相关了解,觉得其逻辑功能相当的弱,难道目的就是将数据逻辑处理全部放在服务器端)

date.js : 日期插件,与date-picker属性, 自动附加新效果。

jquery.fixbox.js : 将页面的部分固定在网站的某些部分

jquery.atwho.js : 类似微博那样的,@谁然后进行提示。

jquery.alphanum.js : 限制文本框输入字符的插件,常用的方法有: .alphanum(); .alpha(); .numeric();

jquery.number.js : 用来格式化显示的数字的插件,使用方法: number();

jquery.numeric.js : 限制输入字符的插件

jquery.chained.js : 网页之间的链式的向导

waypoints.min.js : 滚动事件监听插件, 使用方式: waypoint

optimizely.js : ?

faye.js : 消息通知,但是99测试服务上的存在一些问题,如果了解更多的话,可以将其替换掉。

自写的js: app.js, tophold.common.js, application.js

js和css优化这种事情,对于我这个新手,规则只有一个,不用的就删掉,留着干吗!

后台的js

jquery, jquery_ujs: 有jquery-rails gem包提供的js,其中jquery_ujs是对jquery的文件上传的支持。

jquery-ui, jquery-ui-timepicker-addon, jquery-ui-timepicker-zh-CN: client_side_validations

twitter/bootstrap : bootstrap的css样式的支持。

rails.validations, rails.validations.simple_form : client_side_validations类似的gem包所提供的相关的js,主要是用来simple_form的相关验证。

jquery.tokeninput : 标签输入提示显示

jquery.smart_autocomplete : jquery自动补全的js

select2 : select2-railsgem包提供的,精巧别致的下拉按钮,主要提供响应的<select>及其内容。

image-picker : 下拉列表选择图片,曾经使用的过。但是现在已经没有用处了。

modal : 上传图片的model

best_in_place.purrbest_in_place: best_in_place的gem包提供的,在列表中点击触发置顶之类的。

jquery.remotipart :

tagmanager : tag管理软件js,输入tag的事件处理

typeahead.min : 辅助输入提示

由于项目中存在jst模板,所以,很好奇到底是谁编译的。问了一下前辈,知道是underscode编译的,具体的是说,是underscore-template-rails处理的,仔细想想了,网站里的模板语言还真是丰富多彩:

  • mustache - hogan.js,Rails友好的模板语言
  • JST - underscore, javascript模板语言
  • erb - erb,ruby嵌套的模板语言
  • haml - 人性化的haml模板语言

简单来说,就是模板语言太多了。所以,想要删除掉一些,但实际上,我想要做的事情和最后做成的事情之间存在着巨大的鸿沟,大概所谓的理想和现实之间的差距吧。目标是明确的,那就是,出于想要对所学习的事物有个全景式的认识,想要逐步的将项目重构到一个相对干净的状态。

JST作为一门原生Javascript的模板语言,存在很多可以编译,比如trimpath,以及underscore。关于trimpath一些相关的资料收集如下:

  • 项目主页: https://code.google.com/p/trimpath/
  • JST模板语言介绍: https://code.google.com/p/trimpath/wiki/JavaScriptTemplates



傲娇的使用Disqus