文档章节

JavaScript全讲-它能做什么

Aric_Chen
 Aric_Chen
发布于 2015/12/11 19:59
字数 1047
阅读 191
收藏 8

上篇我们讲到JavaScript已经成为最热门的开发语言,但是很多传统的开发者或许并不认同!你一定遇到这样的情景:JavaScript, 肯定不安全吧? 只是用来验证的?


不只是传统的开发者,很多不了解JavaScript语言的人,对它的印象都还一直停留在"弱语言"的层次! 今天我们就来聊聊目前的JavaScript能做什么,它又是凭借什么成为"最热门"开发语言的。


1. 本地化存储

由于JavaScript一直没有存储数据的能力,导致JavaScript处在一个“辅助”的地位,HTML5的推广,JS有了Storage,IndexDB等特性,可以存储适量(Storage大约在5M)的数据。不要小看这适量的存储,妥善设计,可以让你的系统脱离后端的制约。目前各大平台都已支持,包括Android,IOS.


2.ApplicationCache

俗称“高级缓存”,HTTP协议本身会针对请求文件进行缓存,但是由于这个缓存是协议层的设计,应用层要灵活控制比较麻烦。而ApplicationCache就是针对应用层的API,结合本地存储,可以实现离线应用! 大家看到离线应该就明白了。目前类似淘宝京东这样的电商App端,不联网照样可以正常操作。更换缓存文件,就可在应用内部失效小版本更新。


3. 高级图形编程

JavaScript在图形处理方面一直是比较弱的。之前处理图形用的是SVG,SVG完全用XML来是实现图形。大型的图形处理,类似游戏中,就不太方便(目前主流的游戏引擎还是使用DOM来开发的)。而HTML5的Canvas,完全使用编程来实现图形,较之SVG更加灵活。虽然目前并没有成为主流,但是已经暂露头脚,其在游戏开发中的份额已经越来越多。



4. 后端语言

NodeJS的流行,让JavaScript可以作为后端语言,加之JavaScript的异步特性,以及灵活的函数式编程,针对高并发有独特的优势!相对于Java,C#等后端语言,它也更显得小而美,一个文件即可实现一个Server功能。



5. 云打印

在许多的企业软件中,都需要对各种单据进行打印,原始的Report技术都采用JasperReport以及RML等第三方进行处理。学习成本抛开不说,单是构造Report的格式就浪费太多精力,谁用谁知道!

目前市面上有许多的WebKit引擎,可以实现“虚拟DOM” 。这就可以在后台实现打印,没有额外的学习成本,还可以实现可见即所得,用户也不用安装任何打印组件,真正实现“云打印”。


“云打印”并非设想,我已完整实现,相较于传统的Report,云打印更可以兼具多线程,批量打印等额外功能。



6. 构建高扩展的架构

你可能会奇怪, “构建高扩展的架构”为什么也成为JavaScript专有的特性了。 别着急,听我慢慢道来!

JavaScript作为动态语言,加上其继承的灵活性,又兼具函数式编程的特性,在针对JavaScript设计架构时,相较于Java会更具扩展性! JavaScript从一开始被被冠以“难以管理”,但是在经过了CMD,MVC等等的发展,早已不是当初的JavaScript,如果设计得当,它的兼容扩展性秒杀传统的后端语言。


Web的发展,会继续推动JavaScript支持更多的特性!至于我们耳熟能详的视频播放,音频,由于其相对狭窄的应用范围,就不多讲了。


看过文章,可能有很多读者不服,说这些特性都不成熟,不能贸然使用,或者说我还是觉得它不安全! 对于此,我只能以呵呵回之!


下一篇,我会讲述JavaScript必知的特性!涉及命名污染,匿名函数,继承,闭包等高级特性。






© 著作权归作者所有

共有 人打赏支持
Aric_Chen
粉丝 8
博文 11
码字总数 14256
作品 0
深圳
技术主管
私信 提问
加载中

评论(3)

流浪汉8023
流浪汉8023
js菜鸟,不会写js控件。我也关注一下,博主下次更新什么时候
Aric_Chen
Aric_Chen

引用来自“yangcong”的评论

支持一下?多久一更?关注下
感谢支持!! 一有时间就会更新的。
yangcong
yangcong
支持一下?多久一更?关注下
我为什么不从NodeJS切换到Go

2014年3月26日 我最近研究并玩了一下Go语言,并且我想简短地谈一下为什么我不准备从Node切换到GO。(并且我建议你也不要这么干) 首先,人们在讨论Node.js时会有很多的抱怨: 回调地狱 Promis...

Kris_zcl
2014/03/31
7.9K
6
全栈 JavaScript 程序员的崛起

原文地址:http://thefullstack.xyz/full-stack-javascript-developer/ JavaScript 无处不在 在以前,JavaScript程序员就是前端开发者的同义词,永远与浏览器绑在一起。 但那已是昨日往事。N...

oschina
2016/06/08
7.7K
43
Limu:JavaScript的那些书

又好久没写东西了 ,写上一篇的时候还以为接下来的工作会轻松一些 ,结果未从我所愿呐 ,又是一阵忙碌。而这段时间穿插着做了很多12年淘宝校园招聘的前端面试 ,很多同学都有问到 ,学校里没...

随影求是
2012/03/15
0
0
asp.net2.0学习历程 菜鸟到中级程序员的飞跃【月儿原创】

asp.net2.0学习历程 菜鸟到中级程序员的飞跃 --30本好书点评 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.5.16 学历历程 如果你是一个菜鸟或者自认为初学者那么本文非常...

晨曦之光
2012/03/09
149
0
前端学习之路(从入门到入坑...)

学习前端两年多了,拿了阿里巴巴实现offer,想结合个人经历总结的前端入门方法,总结从零基础到具备前端基本技能的道路、学习方法、资料。由于能力有限,不能保证面面俱到,只是作为入门参考...

阿小庆
06/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

windows10小鹤双拼注册表

《安全第一》直接发文本内容,自己建文本,改文本后缀reg。 使用方法: 1.复制下示文本内容,打开你的文本编辑器(#记事本notepad或其他++),粘贴文本内容并保存在任意位置(不影响使用) ...

漫步海边小路
4分钟前
0
0
一、数据挖掘

数据挖掘的发展动力---需要是发明之母 数据爆炸问题 自动数据收集工具和成熟的数据库技术使得大量的数据被收集,存储在数据库、数据仓库或其他信息库中以待分析。我们拥有丰富的数据,但却缺...

凯文加内特
7分钟前
0
0
Java线程池ThreadPoolExecutor

线程池 ThreadPoolExecutor 线程池是ExecutorService的实现,可以通过Executors执行工厂构造不同类型的执行服务(线程池)。 ThreadPoolExecutor线程池使用的是阻塞队列BlockingQueue。 用于...

器石_
8分钟前
0
0
Mybatis 实现SQL拦截并在控制台打印SQL和参数

注:可以拦截sql 执行时间,优化sql。并打印sql 以及参数 第一步:创建类: SqlPrintInterceptor 并实现 Interceptor 该类如下: package com.ra.common.plugin;import org.apache.ibati...

轻量级赤影
11分钟前
1
0
Log4j2 配置

config: <?xml version="1.0" encoding="UTF-8"?><!-- http://logging.apache.org/log4j/2.x/manual/appenders.html --><!-- status 负责打印日记系统的 WARN 级别以及以上的日记 --><C......

Credo-Zhao
12分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部