文档章节

JavaScript全讲-它能做什么

Aric_Chen
 Aric_Chen
发布于 2015/12/11 19:59
字数 1047
阅读 190
收藏 8
点赞 0
评论 3

上篇我们讲到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
支持一下?多久一更?关注下
前端学习之路(从入门到入坑...)

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

阿小庆 ⋅ 06/14 ⋅ 0

JavaScript异步精讲,让你更加明白Js的执行流程!

JavaScript异步精讲,让你更加明白Js的执行流程! 问题点 什么是单线程,和异步有什么关系 什么是 event-loop jQuery的Deferred Promise 的基本使用和原理 async/await(和 Promise的区别、联...

推荐码发放 ⋅ 05/28 ⋅ 0

给Web前端初学者的一些建议和学习方法路线

Web前端开发工程师是一个很新的职业,是从事Web前端开发工作的工程师。主要进行网站开发,优化,完善的工作。网页制作是Web 1.0时代的产物,那时网站的主要内容都是静态的,用户使用网站的行...

web前端小辰 ⋅ 05/24 ⋅ 0

[译] JavaScript 如何工作:对引擎、运行时、调用堆栈的概述

原文地址: https://blog.sessionstack.com/how-does-javascript-actually-work-part-1-b0bacc073cf PS: 好久没写东西了,最近一直在准备写一个自己的博客,最后一些技术方向已经敲定了,又可...

小烜同学 ⋅ 2017/11/12 ⋅ 0

JavaScript函数式编程之深入理解纯函数

纯函数是函数式编程的基础,需要重点理解。 纯函数的概念: 纯函数是这样一种函数,即相同的输入,永远会得到相同的输出,而且没有任何可观察的副作用。 在说明纯函数的概念之前,先讲两个其...

砖用冰西瓜 ⋅ 06/08 ⋅ 0

太原面经分享:如何用js实现返回斐波那契数列的第n个值的函数

面试攒经验,let's go! 值此高考来临之际,闲不住的我又双叒叕出发去面试攒经验了,去了公司交待一番流程后,面试官甩给了我一张A4纸,上面写着一道js算法笔试题(一开始我并不知道这是在考...

闰土大叔 ⋅ 06/07 ⋅ 0

面向对象,更适合JavaScript

面向对象程序设计是软件开发中一个很庞大很复杂的话题,它并不是仅仅学会类、继承、封装、多态这些面向对象编程语法元素就表示掌握的,这些语法元素只是实现面向对象程序的工具, 就像砖块、...

陈宏鸿 ⋅ 05/07 ⋅ 0

再谈 load 与 DOMContentLoaded

本文首发在github,感兴趣请点击此处 window 的 onload 事件对于前端童鞋来说肯定是熟的不能再熟了,相信大家在刚入门时,见的最多的可能就是 load 事件了。load 事件接触多了,大家就会接触...

lucefer ⋅ 06/21 ⋅ 0

前端要以正确的姿势学习编译原理(上篇)

前端要以正确的姿势学习编译原理(上篇) 发布于 02:05 文章被以下专栏收录

brambles ⋅ 05/22 ⋅ 0

JavaWeb01-HTML篇笔记(七)

.1 案例三:完成对注册页面的数据的简单校验.1.1.1 需求: 对注册页面的数据进行非空的简单校验!!!如果有某个值没有输入,点击提交,弹出一个对话框进行提示!! 1.1.2 分析:1.1.2.1 技术分...

我是小谷粒 ⋅ 04/28 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

zblog2.3版本的asp系统是否可以超越卢松松博客的流量[图]

最近访问zblog官网,发现zlbog-asp2.3版本已经进入测试阶段了,虽然正式版还没有发布,想必也不久了。那么作为aps纵横江湖十多年的今天,blog2.2版本应该已经成熟了,为什么还要发布这个2.3...

原创小博客 ⋅ 48分钟前 ⋅ 0

聊聊spring cloud的HystrixCircuitBreakerConfiguration

序 本文主要研究一下spring cloud的HystrixCircuitBreakerConfiguration HystrixCircuitBreakerConfiguration spring-cloud-netflix-core-2.0.0.RELEASE-sources.jar!/org/springframework/......

go4it ⋅ 今天 ⋅ 0

二分查找

二分查找,也称折半查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于...

人觉非常君 ⋅ 今天 ⋅ 0

VS中使用X64汇编

需要注意的是,在X86项目中,可以使用__asm{}来嵌入汇编代码,但是在X64项目中,再也不能使用__asm{}来编写嵌入式汇编程序了,必须使用专门的.asm汇编文件来编写相应的汇编代码,然后在其它地...

simpower ⋅ 今天 ⋅ 0

ThreadPoolExecutor

ThreadPoolExecutor public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ......

4rnold ⋅ 昨天 ⋅ 0

Java正无穷大、负无穷大以及NaN

问题来源:用Java代码写了一个计算公式,包含除法和对数和取反,在页面上出现了-infinity,不知道这是什么问题,网上找答案才明白意思是负的无穷大。 思考:为什么会出现这种情况呢?这是哪里...

young_chen ⋅ 昨天 ⋅ 0

前台对中文编码,后台解码

前台:encodeURI(sbzt) 后台:String param = URLDecoder.decode(sbzt,"UTF-8");

west_coast ⋅ 昨天 ⋅ 0

实验楼—MySQL基础课程-挑战3实验报告

按照文档要求创建数据库 sudo sercice mysql startwget http://labfile.oss.aliyuncs.com/courses/9/createdb2.sqlvim /home/shiyanlou/createdb2.sql#查看下数据库代码 代码创建了grade......

zhangjin7 ⋅ 昨天 ⋅ 0

一起读书《深入浅出nodejs》-node模块机制

node 模块机制 前言 说到node,就不免得提到JavaScript。JavaScript自诞生以来,经历了工具类库、组件库、前端框架、前端应用的变迁。通过无数开发人员的努力,JavaScript不断被类聚和抽象,...

小草先森 ⋅ 昨天 ⋅ 0

Java桌球小游戏

其实算不上一个游戏,就是两张图片,不停的重画,改变ball图片的位置。一个左右直线碰撞的,一个有角度碰撞的。 左右直线碰撞 package com.bjsxt.test;import javax.swing.*;import j...

森林之下 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部