JX

腾讯Web前端框架库
授权协议 BSD
开发语言 JavaScript
所属分类 Web应用开发、 JavaScript MVC 框架
软件类型 开源软件
地区 国产
投 递 者 余阳秋
操作系统 跨平台
开源组织 腾讯
适用人群 未知
 软件概览

by Tencent AlloyTeam

简介

JX 是模块化的非侵入式Web前端框架,开发于2008年,并于2009年开源于GoogleCode - http://code.google.com/p/j-et/,于2012年切换到Github,开始我们开源计划的新征途,请记住我们的最新开源地址:https://github.com/AlloyTeam/JX,欢迎访问我们的团队Blog - http://www.alloyteam.com/2012/06/jx-framework/,谢谢大家来支持^_^。

JX 框架同时适用于 Web Page 和 Web App 项目的开发,特别适合构建和组织大规模、工业级的Web App,腾讯 WebQQ -http://web.qq.com、腾讯 Q+ http://www.QPlus.com 等产品都是采用JX框架开发,兼容目前所有主流浏览器。

 命名含义

  • JX 是 Javascript eXtension tools 的缩写,即 Javascript 扩展工具套件的意思。

设计理念

  • 保持最优的执行效率

  • 保持 Javascript 原有的代码风格,降低学习难度

  • 不做任何的过度封装

  • 更好的组织工业级 Javascript 应用程序

  • 探索在前端使用 MVP、MVC 等模式来构建大型 WebApp

  • 探索工业级 Javascript 的开发技术

特性

  • 微内核设计:内核可完全分离出来,用于构建其他的框架

  • 原生对象零污染:你懂的,随着js的App越来约复杂,对原生对象的零污染也体现的越来越重要了

  • 模块封包:采用命名空间、闭包等方式建立了模块封包的体系,帮助更好的组织海量js代码

  • 模块自由拼装:自身模块做了良好的架构分离,尽可能让各个模块之间可以自由的拼装组合

  • 无缝集成各种js框架:与jQuery, YUI, Mootools, Prototype.js 等框架无缝集成;与多种局部框架无缝集成,如:Mini, Sizzle, cssQuery, xpath, JSON 等等

  • 多版本共存:如采用的Jx版本过旧,旧有的Javascript代码不能与新版本Jx兼容,则可以采用多版本共存的方式保持程序的可延续性

  • 分层设计:Javascript核心层,与Javascript解释引擎无关的封装和扩展;浏览器端Javascript层,对浏览器中的Javascript引擎部分的封装和扩展

代码示范

  • JX 代码组织方式一(传统):

    var J = new Jx();
    J.out(J.version);

  • JX 代码组织方式二(推荐):

    Jx().$package(function(J){
        J.out(J.version);
    });

相关文档

架构

第一层:Core Javascript 扩展模块 / 代码组织模块(可用于NodeJs等其他js引擎,轻松组织大型应用,无缝接入其它js库)

第二层:Browser Javascript 扩展模块(跨浏览器,基础封装) / 可选模块(设计模式相关模块,选择器模块…)

第三层:UI 组件 / 实时动画模块 / 游戏引擎模块

发展规划

  • 核心底层 - 纯Js底层功能封装/代码组织/无缝接入其它js库 – [完成]

  • 基础扩展 - 跨浏览器封装/工具函数/设计模式相关 – [完成]

  • UI 基础控件 - 按钮/面板/窗口/树形列表/Tab/lightbox/widgets…

  • 实时动画系统 - 实时定时器/关键帧动画/加速度公式/物理引擎/声音控制器…

  • 游戏引擎 - 角色控制/地图系统/游戏异步通讯系统/寻路算法/键盘控制/人工智能/…

设计原则

  • 不要重复自己(Don’t Repeat Yourself) 业界已经有很多优秀的局部框架,比如JSON、Mini Selector Engine、SWFObject、

谁在用JX

感谢

感谢团队每一位成员做出的努力,有你我们会更精彩!

Tencent Alloy Team 2012

  • Python简介 Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。 Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。 Python 是交互式语言: 这意味着,您可以在一个 Python 提

 相关资料
  • 一面-8.23-60min 1.上来写两个题 (1)版本号比较 (2)最长连续子序列 2.问实习经历 3.部署一个项目的流程 4.说一下DNS的查询流程,说一下递归查询和迭代查询的过程 5.如何优化页面渲染性能 6.React生命周期 7.说一下Monorepo架构的优势 8.反问 部门业务,技术栈 二面-8.25-30min 全程问实习经历和校园经历,比较偏拷打的问法,如果是纯业务的内容,他会直

  • 时隔两年,腾讯笔试又满分了。 第一题,两处的todo是获取节点,getElementById和getElementsByClassName,想不起来api名称可以控制台输一下,其他三处todo模仿对应的实例就可以了,只是数值和元素做一定改动。 第二题,一个往大了整一个往小了整,两个index记录头尾索引,对比头尾大小就ok了。 第三题,忘了,好像有点简单。 第四题,数组展开,然后创建一个空对象,遍

  • 这个时间点一面应该是被捞了 但是感觉也是kpi面,都是比较简单的问题,记几个还有印象的 1.js闭包以及闭包应用场景,闭包存在的问题 2.垃圾回收机制 3.vue的mvvm 4.手撕数组去重 5.手撕大数相加 其他的: 你觉得你几天可以上手react 有些难度的项目你可以多久上手

  • 一面 1丶算法 版本号比较  深拷贝(存在循环引用也要拷贝出来,weakmap出现>2就终止递归) 2丶登陆方案,jwt和cookie比较 session存在哪,为什么存redis,除了并发量和读取速度的考虑还有什么。token存哪,如果存vuex刷新还存在吗。 3丶让你实现一个通用级联框组件且带权限判断,你有什么思路(不会,有没有佬说一下)。面试官追问你如何让嵌套的多层组件获取到权限判断的信息(

  • 1.用户从浏览器输入地址到渲染整个过程 2.dns域名解析过程 3.https为什么比http安全 4.http2.0新特性 5.前端开发防范哪些网络攻击 6.前端什么方法让页面打开速度变快 7.项目难点 感觉被kpi了,电话联系的,十五分钟结束战斗,全答上来,第二天直接寄#软件开发2024笔面经#

  • 一共才40分钟 有没有比我更短的。。 自我介绍 然后问项目 项目真的是弱点啊…实习的时候基本都复制粘贴 也不记得遇到啥困难 总不能说靠CSDN解决的吧 上来先是两道算法 合法括号和找不重复等于0的三元组 都比较简单 然后就问了两个问题 cookie和session的使用场景 get和post的区别 就没了。。。估计看我答得不太好没兴趣问了 啊啊啊啊啊啊啊

  • 前端最吸引你的地方的的是什么 你认为前端有哪些地方比后端难 浏览器事件执行机制,浏览器是怎么实现这个机制的 基本数据类型有哪些,复杂数据类型有哪些 js继承怎么实现的,除了原型链继承还有哪些,原型链和类继承的区别是什么 线程和进程的区别是什么,为什么游览器使用单线程 请求拦截器和响应拦截器是一种什么样的设计模式 你知道axios底层是怎么实现的吗 发出请求到收到回包整个浏览器执行了什么或者是网络层

  • 1.实习经历拷打,业务痛点,为什么计划关联人,而不是人关联计划,返给后端的是什么.... 2.xss攻击 3.大文件上传 4.rem适配怎么实现,libflexilble作用 5fcp,lcp怎么计算 6接触过什么后端语言 7为什么选前端,学习路径,看了什么书,看书有什么收获 8vue2.3区别,proxy的缺点,兼容性不好,如何兼容低版本浏览器,我说用babel转成es5,反问你确定真的可以吗