当前位置:首页 > 电子书 > 电子书下载 > 程序设计 >
同构JavaScript应用开发 同构JavaScript应用开发
qjl498359170

qjl498359170 提供上传

资源
32
粉丝
24
喜欢
116
评论
18

    同构JavaScript应用开发 PDF 清晰中文版

    JavaScript电子书
    • 发布时间:2020-01-05 20:29:14

    给大家带来的一篇关于JavaScript相关的电子书资源,介绍了关于JavaScript、应用开发方面的内容,本书是由人民邮电出版社出版,格式为PDF,资源大小10.4 MB,杰森·史特林贝尔(Jason Strim编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:7.3。

  • 同构JavaScript应用开发 PDF 下载
  • 下载地址:https://pan.baidu.com/s/1evsPZNfj4X4MYyr6pdj0Y
  • 提取码:cxq3
  • 这书的关键目地是为同构JavaScript的保持出示基本知识,并协助阅读者了解业内目前的同构JavaScript解决方法,在具体分辨同构JavaScript是不是为行得通的解决方法时可以做出*聪明的挑选,防止你“反复造轮子”。主要内容:*一部分勾勒不一样类型的同构JavaScript的轮廊,第二一部分详细介绍重要定义,第三一部分出示业内同行业的解决方法实例。

    同构JavaScript应用开发》将向你展现怎样搭建和维护保养归属于自身的同构JavaScript运用。《同构JavaScript应用开发》分成三一部分,*一部分勾勒不一样类型的同构JavaScript的轮廊,第二一部分详细介绍重要定义,第三一部分出示业内同行业的解决方法实例。根据阅读文章这书,你将掌握到这类运用构架日渐时兴的缘故,并将其应用于处理重要的业务流程难题,如网页页面载入速率和SEO兼容模式。《同构JavaScript运用开发》合适对同构JavaScript很感兴趣的Web开发工作人员。

    目录

    • 前言 ix
    • 第一部分 简介与关键概念
    • 第1章 为什么需要同构JavaScript 2
    • 1.1 定义同构JavaScript 3
    • 1.2 评价其他的Web应用架构方案 3
    • 1.2.1 状况的改变 3
    • 1.2.2 工程上的关注点 4
    • 1.2.3 可选架构 4
    • 1.3 附加说明:何时不使用同构 10
    • 1.4 小结 11
    • 第2章 同构JavaScript图谱 12
    • 2.1 共享视图 13
    • 2.1.1 共享模板 14
    • 2.1.2 共享视图逻辑 14
    • 2.2 共享路由 14
    • 2.3 共享模型 15
    • 2.4 小结 15
    • 第3章 同构JavaScript分类 16
    • 3.1 与环境无关的代码 18
    • 3.2 为每个特定环境提供shim 19
    • 3.3 小结 20
    • 第4章 超越服务器端的渲染 21
    • 4.1 实时Web应用 22
    • 4.1.1 同构API 23
    • 4.1.2 双向数据同步 23
    • 4.1.3 在服务器端进行客户端仿真 23
    • 4.2 小结 24
    • 第二部分 构建第一个应用
    • 第5章 起步 26
    • 5.1 Node的安装和运行 27
    • 5.1.1 从源码安装 27
    • 5.1.2 与Node REPL交互 28
    • 5.1.3 使用npm 管理项目 28
    • 5.2 建立应用项目 29
    • 5.2.1 初始化项目 29
    • 5.2.2 安装应用服务器 31
    • 5.2.3 编写下一代的JavaScript(ES6) 32
    • 5.2.4 将ES6编译为ES5 34
    • 5.2.5 建立开发流程 35
    • 5.3 小结 39
    • 第6 章 提供第一份HTML文档 40
    • 6.1 提供HTML模板 40
    • 6.2 使用路径参数与查询参数 42
    • 6.3 小结 45
    • 第7章 设计应用架构 46
    • 7.1 理解问题 47
    • 7.2 响应用户请求 47
    • 7.2.1 创建Application类 47
    • 7.2.2 创建控制器 49
    • 7.2.3 构造控制器实例 50
    • 7.2.4 拓展控制器 52
    • 7.2.5 改进响应流 53
    • 7.3 小结 57
    • 第8章 将应用传输到客户端 58
    • 8.1 打包应用的客户端版本 58
    • 8.1.1 选择打包库 58
    • 8.1.2 创建打包任务 59
    • 8.1.3 添加客户端实现 61
    • 8.2 响应用户请求 62
    • 8.2.1 利用History API 63
    • 8.2.2 响应并调用History API 63
    • 8.3 客户端路由 67
    • 8.4 组织代码 73
    • 8.5 小结 75
    • 第9章 创建常用的抽象 76
    • 9.1 何时抽象,为什么需要抽象 76
    • 9.2 获取和设置cookie 77
    • 9.3 重定向请求 84
    • 9.4 小结 88
    • 第10章 序列化、反序列化和添加事件监听 89
    • 10.1 序列化数据 90
    • 10.2 创建控制器实例 92
    • 10.3 反序列化数据 93
    • 10.4 添加DOM事件处理器 94
    • 10.5 验证rehydration过程 96
    • 10.6 小结 98
    • 第11章 结束感言 99
    • 11.1 生产准备 99
    • 11.2 衡量架构 99
    • 11.3 小结 102
    • 第三部分 现实世界的解决方案
    • 第12章 沃尔玛实验室的同构React.js方案 104
    • 12.1 物种起源 104
    • 12.1.1 问题 105
    • 12.1.2 解决方案 106
    • 12.2 React模板与模式 106
    • 12.2.1 在服务器端渲染 106
    • 12.2.2 在客户端恢复 110
    • 12.3 沃尔玛采用的方法 112
    • 12.4 克服挑战 112
    • 12.4.1 首字节时间 112
    • 12.4.2 组件渲染优化 113
    • 12.4.3 性能提升 117
    • 12.5 下一步 119
    • 12.6 感谢 120
    • 12.7 补充说明 120
    • 第13章 全栈Angular 121
    • 13.1 同构JavaScript:Web应用的未来 122
    • 13.2 同构Angular 1 122
    • 13.3 Angular 2服务器端渲染 124
    • 13.3.1 服务器端渲染的用例 124
    • 13.3.2 Web 应用脱节 126
    • 13.3.3 Angular 2渲染架构 127
    • 13.3.4 Preboot 128
    • 13.4 Angular Universal 128
    • 13.5 GetHuman.com 130
    • 13.6 补充说明 131
    • 第14章 Brisket 132
    • 14.1 问题 132
    • 14.2 两全其美 134
    • 14.3 早期Brisket 135
    • 14.4 成为现实 136
    • 14.5 代码自由 136
    • 14.6 跨环境一致的API 139
    • 14.6.1 模型/ 集合 140
    • 14.6.2 视图生命周期 140
    • 14.6.3 子视图管理 141
    • 14.6.4 跨环境使用的工具 141
    • 14.7 前进之路 142
    • 14.7.1 ClientApp与ServerApp 142
    • 14.7.2 布局模板 142
    • 14.7.3 其他经验教训 143
    • 14.8 Brisket的下一步? 143
    • 14.9 补充说明 144
    • 第15章 Colony案例研究:脱离Node创建同构应用 145
    • 15.1 问题 145
    • 15.2 模板 146
    • 15.3 数据 147
    • 15.4 转译视图模型 148
    • 15.5 布局 150
    • 15.6 页面生成器 152
    • 15.7 前端SPA 152
    • 15.8 最终架构 153
    • 15.9 后续计划 154
    • 第16 章 结语 155
    • 16.1 设计模式、Flux和同构JavaScript家族 155
    • 16.1.1 永远相信JavaScrip 156
    • 16.1.2 命名与理解 157
    • 关于作者 159
    • 关于封面 159

    读书笔记

    JavaScript设计模式之职责链模式应用示例

    本文实例讲述了JavaScript设计模式之职责链模式。分享给大家供大家参考,具体如下:

    一、职责链的定义:

    使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。

    二、实例场景说明:

    某公司对公司产品-手机进行促销活动,有以下政策:在正式购买时,已经支付过500元定金的用户会收到100元的商城优惠卷,交200元定金的用户可以收到50元的优惠卷,而之前没有支付定金的用户只能进入普通购买模式,也就是没有优惠卷,主要危险为在库存有限的情况下不一定能买到手机。

    三、实例代码如下:

    1、创建3中购买模式的函数对象,如下:

    /**
    * @param: orderType 表示订单类型
    * @param: pay 表示用户是否已经支付定金
    * @param: stock 表示当前用户普通购买的手机库存数量,交过定金的用户不受此限制
    **/
    var order500 = function( orderType, pay, stock ){
      if( orderType === 1 && pay === true)
         console.log('500元定金预购,得到100优惠卷');
      else
         return 'nextSuccessor'; //不知道下一个节点是谁,反正把请求往后面传递
    };
    var order200 = function( orderType, pay, stock){
      if( orderType === 2 && pay === true)
        console.log( '200元定金预购,得到50元优惠卷' );
      else
        return 'nextSuccessor';
    };
    var orderNormal = function(orderType, pay, stock){
      if(stock > 0)
        console.log('普通购买,无优惠卷');
      else
        console.log('手机库存不足');
    };
    
    

    2、书写一个把函数包装进职责链节点的构造函数,如下:

    var Chain = function(fn){
      this.fn = fn;
      this.successor = null;
    };
    Chain.prototype.setNextSuccessor = function( successor ){
      return this.successor = successor;
    };
    Chain.prototype.passRequest = function(){
      var ret = this.fn.apply( this, arguments );
      if( ret === 'nextSuccessor'){
        return this.successor && this.successor.passRequest.apply( this,successor, arguments );
      }
       return ret;
    };
    
    

    3、调用如下:

    1> 把3个订单函数分别包装成职责链的节点:

    var chainOrder500 = new Chain( order500 );
    var chainOrder200 = new Chain( order200 );
    var chainOrderNormal = new Chain( orderNormal );
    
    

    2> 指定节在职责链中的顺序:

    chainOrder500.setNextSuccessor( chainOrder200 );
    chainOrder200.setNextSuccessor( chainOrderNormal );
    
    

    3> 把请求传递给第一个节点,如下:

    chainOrder500.passRequest( 1, true, 500 ); //输出:500元定金预购,得到100优惠卷
    chainOrder500.passRequest( 2, true, 500 ); //输出:200元定金预购,得到50优惠卷
    chainOrder500.passRequest( 3, true, 500 ); //输出:普通购买,无优惠卷
    chainOrder500.passRequest( 1, false, 0 ); //输出:手机库存不足
    
    

    四、职责链模式优点:

    通过上述代码,我们可以灵活的添加和删除节点,以及可灵活的修改节点的顺序。

    更多关于JavaScript相关内容可查看本站专题:《javascript面向对象入门教程》、《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》

    希望本文所述对大家JavaScript程序设计有所帮助。

    上一篇:Linux就该这么学

    下一篇:深度学习精要(基于R语言)

    展开 +

    收起 -

     
    JavaScript 相关内容
    JavaScript前端开发案例教程
    JavaScript前端开发案例教程 超清扫描版

    JavaScript是这种运用于Web前端开发的开发语言,具备简易、易懂、实用的特性,用JavaScript开发设计网页页面能够提高网页页面的参与性,为客户出示即时的、动态性的互动感受。 《 JavaScript前端

    立即下载
    大型JavaScript应用最佳实践指南
    大型JavaScript应用最佳实践指南 影印超清版 立即下载
    移动网页设计与开发:HTML5+CSS3+JavaScript
    移动网页设计与开发:HTML5+CSS3+JavaScript 影印完整版

    将落伍的网址打导致更为灵便、友善,而且令其充分运用不一样机器设备和电脑浏览器的与众不同优点。根据《移动网页设计与开发HTML5+CSS3+JavaScript》,您将为投身第一线开发充分准备! *內容

    立即下载
    JavaScript从入门到精通
    JavaScript从入门到精通 影印第2版

    本书是javascript高级程序的权威指南,从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用JavaScript语言进行程序开发应该掌握的各方面技术,是一本入门经典书籍

    立即下载
    你不知道的JavaScript(中卷)
    你不知道的JavaScript(中卷) 影印版

    JavaScript这门语言简单易用,很容易上手,但其语言机制复杂微妙,即使是经验丰富的JavaScript开发人员,如果没有认真学习的话也无法真正理解。

    立即下载
    JavaScript框架设计
    JavaScript框架设计 全书完整版

    JavaScript,框架设计

    立即下载
    JavaScript网页动画设计
    JavaScript网页动画设计 高清版

    JavaScript网页动画设计 由业界先进的动画库Velocity。js的作者所著,书中内容共分为8章,简明扼要地总结了在网页上使用动画的技术技巧,让读者掌握如何有效利用动画实现无与伦比的用户体验

    立即下载
    HTML5+CSS3+JavaScript从入门到精通
    HTML5+CSS3+JavaScript从入门到精通 原书影印版

    本书以基础知识、示例、实战案例相结合的方式详尽讲述了HTML,CSS,JavaScript及目前最新的前端技术

    立即下载
    学习笔记
    网友NO.628092

    JavaScript Date对象应用实例分享

    本文实例为大家分享了js Date对象应用3个实例,供大家参考,具体内容如下 一.获取日期时间,秒数实时跳动 !DOCTYPE htmlhtml lang="en"head meta charset="UTF-8" titledate01/title style #date{ position: absolute; font-size: 30px; font-family: '微软雅黑'; top:50%; left:50%; -webkit-transform:translate(-50%,-50%); } /style/headbody div id="date"2017.10.29/div script window.onload = function(){ showTime(); } //checkTime(i)对分钟和秒进行判断,如果小于10,在其前补0. function checkTime(i){ return i 10? "0"+i:i; } function showTime(){ var time = new Date();//日期对象 console.log("new Date :"+time); var year_1 = time.getYear();//获得年份 console.log("getYear(): "+year_1); var year_2 = time.getFullYear();//获得完整年份 console.log("getFullYear(): "+year_2); var month = time.getMonth();//获得月份(0~11) console.log("getMonth(): "+month); var date = time.getDate();//获得日期(1~31) console.log("getDate(): "+date); var day = time.getDay();//星期几(0~6) console.log("getDay(): "+day) var hours = time.getHours();//小时(0~23) console.log("getHours(): "+hours); var min = time.getMinutes();//分钟(0~59) console.log("getMinutes(): "+min); var seconds = time.getSeconds();//秒 console.log("getSeconds(): "+seconds); min = checkTime(min); seconds = checkTime(seconds); var weekday = new Array(7); weekday[0] = "星期天"; weekday[1] = "星期一"; weekday[2] = "星期二"; weekday[3] = "星期三"; weekday[4] = "星期……

    网友NO.844971

    Javascript中indexOf()和lastIndexOf应用方法实例

    indexOf()方法 indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。 注释: indexOf() 方法对大小写敏感! 注释:如果要检索的字符串值没有出现,则该方法返回 -1。 用之前的charAt()方法 var str ='www.webclks.com/archives/3309';for(var i=0; istr.length; i++){ if(str.charAt(i)==='/'){ alert(i); }} indexOf()方法 var str ='www.webclks.com/archives/3309';alert(str.indexOf('/')); // 从第0个开始查alert(str.indexOf('/',16)); // 从第16个开始查alert(str.indexOf('x')); // 查不到返回-1; indexOf()方法实例 var str='专注脚本学习,分享脚本学习资料和学习心得技巧!';var s='脚本; // 要查询的内容var i=0; // 从第几个开始查询/*for(;str.indexOf(s,i)!=-1;){ alert(str.indexOf(s,i)); i=str.indexOf(s,i)+s.length;}*/while(str.indexOf(s,i)!=-1){ alert(str.indexOf(s,i)); i=str.indexOf(s,i)+s.length; } lastIndexOf()方法 lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。 注释: lastIndexOf() 方法对大小写敏感! 注释:如果要检索的字符串值没有出现,则该方法返回 -1。 lastIndexOf() 方法实例 var str='专注Web前端学习,分享Web前端学习资料和学习心得技巧!';alert(str.indexOf('W',0)); // 从前往后查alert(str.lastIndexOf('W',24)); // 从后往前查 如果第2个值为负数,默认当成0来处理 总结 以上就是本文的全……

    网友NO.969553

    使用JavaScript开发跨平台的桌面应用详解

    任何可以使用JavaScript来编写的应用,最终会由JavaScript编写。--Atwood定律 Atwood's Law是Jeff Atwood在2007年提出的:“any application that can be written in JavaScript, will eventually be written in JavaScript.”。据说,这只是当时开的一个玩笑。不过,这个玩笑似乎渐渐变成了现实。从各种华丽的网页框架,到功能强大的库,到了现在的机器学习,服务器开发,都有JavaScript的身影。从JavaScript也衍生出了一些语言,例如TypeScript。而使用JavaScript制作游戏也变得方便起来,可以使用CocosCreator。Html5的横空出世,也将之前JavaScript在网页的辅助地位提升到了主力地位,nodejs的出现更是让其实现了所谓的“全栈”开发,现在JavaScript甚至可以做手机应用。但是,在移动端、浏览器、服务器端有需求,在桌面应用上也会有需求。能不能使用JavaScript来开发可以跨平台的应用程序呢?答案是:可以。使用 Electron 即可方便的使用JavaScript进行桌面应用开发。可以看到,很多大名鼎鼎的程序都是由它直接或间接开发而成,例如Atom,VSCode等。 需要注意的是,目前使用Electron开发桌面应用程序有一些限制条件。首先,我们无法调用复杂的系统API(或者说不能直接做到),这就导致我们无法开发更加复杂的企业级应用。其次,它的性能目前仍然不能与原生应用相提并论。我们……

    网友NO.988952

    JavaScript数据结构中栈的应用之表达式求值问题详解

    本文实例讲述了JavaScript数据结构中栈的应用之表达式求值问题。分享给大家供大家参考,具体如下: 下面来谈一个比较经典的表达式求值问题,这个问题主要是设计到操作符的优先级。我们通常看到的表达式都是中缀表达式,存在很多优先级差别,而后缀表达式则没有这些优先级问题。下面先看看两种表达式的区别。 中缀表达式:a*b+c*d-e/f 后缀表达式:ab*cd*+ef/- 从中缀表达式转换到后缀表示式是很难实现的,我们这里可以通过栈的思想来实现。下面进行详细的介绍是什么样的思想: 在对一个中缀表示式进行转换的时候,遇到非操作符的字符则直接保存到后缀表示式的存储空间中。 遇到(,则压入栈,只有遇到对应的)才能被弹出。 遇到),就将(之前的操作符全部弹出,并保存到存储空间。 遇到*和/这样优先级高的,就判断栈中的操作符优先级是否低于当前操作符。 如果栈中的遇到的低,则将遇到的继续入栈;如果栈中的高,则将栈中的出栈,遇到的入栈。 最后,当字符串遍历完成,依次弹出操作符,保存到存储空间。 为了方便理解,将上面的例子再次讲解。a*b+c*d-e/f 首先是ab被保存到了存储空间,然后*入栈。现在栈中只有*。 遇到+之后,由于*比+优先级高,所以*出栈,+入栈,这样存储空间变为ab*,栈中变为+。……

    电子书 编程教程 文档 软件 源码 视频

    Copyright 2018-2020 xz577.com 码农之家

    本站所有电子书资源不再提供下载地址,只分享来路

    免责声明:网站所有作品均由会员网上搜集共同更新,仅供读者预览及学习交流使用,下载后请24小时内删除

    版权投诉 / 书籍推广 / 赞助:QQ:520161757