November 16, 2013

在 ClojureScript 中使用 macro 简化 Angular.js 代码

背景

在 Angular.js 中配置 module.config 和 module.controller 等时, 需要使用一种稍微麻烦一点的方式:

function PhoneListCtrl($scope, $http) {...}

phonecatApp.controller('PhoneListCtrl', ['$scope', '$http', PhoneListCtrl]);

即需要重复指定需要的参数: 函数的参数和数组中的字符串. 这样做的目的是防止这些 JavaScript 代码被压缩混淆后, 函数的参数被重命名以至于 An......

June 30, 2012

JavaScript MVC 和 RESTful Web API

最近 Web 开发的一个趋势是在前端(Javascript)应用 MVC 架构, 主要是让浏览器处理大部分的功能,比如界面展示和交互, 服务器端仅提供数据和服务接口。

JavaScript MVC

JavaScript MVC 架构与使用 Ruby on Rails, Django, Struts 等框架的传统开发的一个主要区别, 是在浏览器端处理 HTML 视图。传统的流程一般在服务器端生成需要显示给用户的 HTML,然后通过 HTTP 响应发送到用户的浏览器直接显示。而 Javascript MVC 的方法一般是提前下载好需要显示的 HTML 视图/模板, 然后根据从服务器得到的数据,......