起因

刚进公司那会儿,接的是一个微信APP应用,SPA是前人搭起来的,用到的技术主要是backbone和zepto。后来那人走了,就卤煮一个人把项目接了下来。项目越是到后面,越发觉了诸多弊端,不停的增加界面和业务使得整个应用看起来臃肿不堪。于是觉得是时候重构了。那时也巧是正好认识requireJS,认为界面嘛,总可像那模块一样,异步加载进来。于是就在旧瓶子里装了新酒,除了界面,代码结构就完全重写了。后来私底下又接了别人的活,也是微信APP应用,觉着跟咱之前的差不多,也就把重构后的代码一并用上,发现效果很不错。完成后渐渐的生出自己写框架的想法,于是便抽出代码,修改,优化。积累起来一个基于backbone的快速开发的代码库。用来开发html的单界面应用。

简介

目前就将它命名为SalutJS吧。它的作用主要是让开发人员关注具体的业务,快速的搭建基础框架。如果你使用了Salut,你可以在两分钟内搭建起来一个简单的单页应用。当然,所谓的单页是指不刷新界面的情况下切换视图界面,是用户感觉整个应用的界面是流程的,无刷新的。我们是利用浏览器的hash变化值和div隐藏切换实现的这个功能。通过检测浏览器的hash值变化,从而改变div(一个完整的界面)的显示和隐藏,从而达到无刷新切换界面的效果。一开始有个疑问,那就是如果界面越来越多,会不会影响加载性能呢?我想这是每个做移动开发的人员都回去考虑的问题。SalutJS为你解决了这个问题。界面是可以拆分,组合,并且是异步加载的。你可以在一开始只load出第一个界面,然后再需要的时候异步load其他界面。资源文件(js,template)都是异步加载到客户端的。这样就解决了业务提示从而导致首屏加载速度慢的问题了。其次,SalutJS的所有节目几乎是只需要几行配置就可以展示出来,等于是将界面开发配置化了,你需要做的事建的业务需求和界面css代码的编写。通过它的简单的API,你可以快速简介地串联起各个界面。

示例

卤煮将在以后几篇博文中陆续介绍SalutJs。通过制作一个简单的单页应用,展示它的具体用法。下面是实例部分的截图。可以改变地址栏改变了hash值推动界面变化。

结语

SalutJS只为快速开发SPA这个简单的目的。当然,里面的错误和欠考虑之处在所难免。你可以去github上fork一下,通过阅读代码,发现问题并且@我提出你的宝贵意见,一起完善它,将其造福于广大的程序员。另外,虽然现在用的是requireJS,然而异步模块加载的模块卤煮已经重写一次,用起来虽然差强人意,单比起requireJS,确实没有其成熟,不过体积却只有它的四分之一,为了精简代码,卤煮后续会替换掉之。还有,卤煮到最后也是希望替换掉backbone的,真正实现自己的一套原生框架。这项工程较大,需要花很多时间。也需要诸位的慷慨相助。

源码地址

https://github.com/constantince/Salut

快速构建SPA框架SalutJS--项目工程目录 一的更多相关文章

  1. 快速构建SPA框架SalutJS--项目工程目录 二

    目录结构 上面这张图是salut的目录文档,从github上将其下载后直接运行node run和 node json 可以直接启动项目.下面逐个介绍每个目录的存放的文件和作用. constructio ...

  2. 快速构建SPA框架SalutJS--项目工程目录 三

    配置文件 在开始我们的第一个界面之前,我们需要把初始的html和config文件配置好.html非常简单,只需要一个div作为最外部的容器包裹着所有界面即可: <!DOCTYPE html> ...

  3. 使用 Spring Boot 快速构建 Spring 框架应用--转

    原文地址:https://www.ibm.com/developerworks/cn/java/j-lo-spring-boot/ Spring 框架对于很多 Java 开发人员来说都不陌生.自从 2 ...

  4. 使用 Spring Boot 快速构建 Spring 框架应用,PropertyPlaceholderConfigurer

    Spring 框架对于很多 Java 开发人员来说都不陌生.自从 2002 年发布以来,Spring 框架已经成为企业应用开发领域非常流行的基础框架.有大量的企业应用基于 Spring 框架来开发.S ...

  5. 使用 Spring Boot 快速构建 Spring 框架应用

    Spring 框架对于很多 Java 开发人员来说都不陌生.自从 2002 年发布以来,Spring 框架已经成为企业应用开发领域非常流行的基础框架.有大量的企业应用基于 Spring 框架来开发.S ...

  6. Myeclipse项目工程目录中各种Libraries的含义

    MyEclipse工程目录下一般会有以下几类Libraries,如图: 各种Libraries的含义如下: JRE System Library:Java SE 的常用库文件集合,构建任何Java项目 ...

  7. Maven项目工程目录

    maven工程目录规范: src/main/java   存放项目的.java文件 src/main/resources   存放项目的资源文件,如spring.hibernate配置文件 src/t ...

  8. maven项目工程目录约定

    使用maven创建的工程我们称它为maven工程,maven工程具有一定的目录规范,如下: src/main/java —— 存放项目的.java文件 src/main/resources —— 存放 ...

  9. 快速构建hibernate框架

    手动配置Hibernate框架的配置,极易出现问题,在Eclipse的web项目中,我们可以快速配置,方便快捷 一.导入Hibernate框架所需要的jar文件 二. 窗口—Perspective—打 ...

随机推荐

  1. vm12 和14密钥

    vm12:5A02H-AU243-TZJ49-GTC7K-3C61N vm14:FF31K-AHZD1-H8ETZ-8WWEZ-WUUVA

  2. DUBBO报错分析—1(连接zookeeper成功,调用方法无反应,不报错)

    思路分析 调用方法时,最后调用执行的是mapper的sql语句,既然调用对应的方法无法获取返回值,多是sql错误,但是并未报sql错误,说明可能是与sql相关的数据源配置错误. 过程调试 经尝试,当直 ...

  3. 第一个vue示例-高仿微信

    这时我学习vue写的第一个demo,因为以前学过angular,所以这次看vue的时候是先写demo,在写的过程中遇到不会的在看书的方式学习的,因为是针对性学习,所以可以快速的对vue有个大概的认识, ...

  4. Reading Code Is Hard

    注: 以下内容引自: https://blogs.msdn.microsoft.com/ericlippert/2004/06/14/reading-code-is-hard/ Reading Cod ...

  5. 集成支付宝SDK流程

    5.2 SDK集成流程 5.2.1 iOS 解压接口压缩文件(文件名是 WS_MOBILE_PAY_SDK_BASE.zip),找到iOS的压缩文件(文件名是支付宝移动支付SDK 标准版(iOS).z ...

  6. spss汉化详解

    今天写一下关于SPSS的汉化以及激活码 下载spss: 安装过程比较简单,主要就是激活码: 9DNCAF2O3QVDV7FBIO696OO6GWLNXZPPRYTPWF2PPX7C8T6Y24LMVV ...

  7. Charles 如何破解与连接手机进行抓包

    破解charles: 由于本人工作原因,现使用的为mac笔记本,但是基本的使用原理都是一样的,以下为如何破解charles与连接手机进行抓包详解.工具如有需要着请留言. 当前下载使用的版本为:char ...

  8. (转载)CSS3与页面布局学习总结(三)——BFC、定位、浮动、7种垂直居中方法

    目录 一.BFC与IFC 1.1.BFC与IFC概要 1.2.如何产生BFC 1.3.BFC的作用与特点 二.定位 2.2.relative 2.3.absolute 2.4.fixed 2.5.z- ...

  9. 【BAT面试题系列】面试官:你了解乐观锁和悲观锁吗?

    前言 乐观锁和悲观锁问题,是出现频率比较高的面试题.本文将由浅入深,逐步介绍它们的基本概念.实现方式(含实例).适用场景,以及可能遇到的面试官追问,希望能够帮助你打动面试官. 目录 一.基本概念 二. ...

  10. 带你由浅入深探索webpack4(二)

    在前一篇文章已经介绍了webpack4从入门到一些核心常用的用法,大家可以从上一篇文章看起.带你由浅入深探索webpack4(一) 接着上一章,接下来我们会继续探讨webpack4中的各种实用用法,让 ...