职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 457|回复: 2

PyJs--一种全新的CommonJs的浏览器端实现

[复制链接]
郁闷小男人 发表于 2011-8-30 10:05 | 显示全部楼层 |阅读模式
PyJs 2.0.1 alpha 今天发布~

这里的PyJs,不是已有的Pyjamas,而是依赖于python的一个符合commonjs规范的浏览器端JavaScript Framework。

PyJs有以下几个特点:

1. commonjs语法

2. 不需要如seajs  requirejs等在每个模块加入无用的模板代码

3. 可以使用一个combo请求将所有依赖链文件全部取回

4. 没有combo服务的,可以在本地并行加载依赖链文件。

5. 本地python服务器,支持url转发,自定义插件,变量替换等功能

demo可以见百度连接的demo,就是基于PyJs实现的

demo

具体语法为:
子模块文件add.js:
Js代码  
exports.add = function() {   
    var sum = 0, i = 0, args = arguments, l = args.length;   
    while (i < l) {   
        sum += args[i++];   
    }   
    return sum;   
};  

exports.add = function() {
    var sum = 0, i = 0, args = arguments, l = args.length;
    while (i < l) {
        sum += args[i++];
    }
    return sum;
};


另一个模块increment.js:
Js代码  
var add = require('math').add;   
exports.increment = function(val) {   
    return add(val, 1);   
};  

var add = require('math').add;
exports.increment = function(val) {
    return add(val, 1);
};

increment需要math的内部方法时,直接require('math')即可


与SeaJs的对比如下


PyJs因为有环境依赖,所以不是很适合模板类项目使用。但是如果一个项目只有静态文件,如网页版聊天工具、map等富交互的产品,使用PyJs是非常合适的。

更多文档

项目地址

PS: alpha版。。很多commonjs规范没有实现,也因为项目原因没有实现多级文件夹的require,同时bug较多,这个会一直改进

PPS: 第一次做这种开源项目,经验不足,虚心接受大家指点~~~






楠楠 发表于 2011-8-30 10:05 | 显示全部楼层
commonjs modules 是同步的 在客户端无法保证加载顺序 打包是一个办法 但调试不方便

秋秋 发表于 2011-8-30 10:05 | 显示全部楼层
调试的时候可以直接在本地使用同步的ajax来获取脚本的哈
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-4-24 16:00 , Processed in 0.144826 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表