【从html到算法框架】科技白学习计划书
一、学习计划
根据对Web知识层次的梳理,我觉得可以把它分别以技术和思想两个维度进行分类。从技术维度上讲,Web知识有内容、结构、样式、操作(静态的修改与动态的修改(动态,例如使用定时器))、交互(与浏览器以及硬件设备)、数据处理(增删改查、算法使用)、请求与通信、BUG调试这些层面。只有讲这些掌握,才能完成开发需求。而从思想维度上讲,完成技术维度中的种种过程,可以使用不同的方法完成,高级的编程思想以库和框架的形式被封装备用。这些库和框架可以将写好的代码提升开发效率、优化开发逻辑、大幅提升性能。
二、Web知识层次
- 技术维度
- 内容、结构以及相关操作
- 静态内容与结构:
- Html:Html语言,是超文本标记语言,使用标记标签标记纯文本。它不是编程性语言,它决定了一个网页的内容而不是功能。该语言构建了网页的结构和内容。
- 动态内容与操作:
- DOM(文档对象模型):DOM 是一个 可以访问和修改当前文档的 API。DOM 提供了一种表述形式——将文档作为一个结构化的节点组(Node和Element)以及包含属性和方法的对象。它所提供的API可以为JS等语言提供能力去访问和操作这些节点(Node和Element)的属性和方法。HTML,XML 和 SVG 都扩展了基本的 DOM 接口来操作它们各自私有的元素类型。(本文特指用JS去操作HTML)
- 图形化编程:在文档中建立一个相应标签(canvas、svg),可通过DOM API直接生成图像,通过JS定时器以及API操作,可以生成强大的Web动画;
- 模板引擎(本文特指JS):是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档。
- 描述:模板引擎不属于特定技术,是跨领域的技术。PHP、.ASP、C#、Javascript等都有属于自己的模板引擎。由于本文背景只涉及JS一种编程语言,所以本文中模板引擎将特指Js模板引擎。
- 实现方式:
- 置换型:模板引擎的实现方式有很多,最简单的是“置换型”模板引擎,这类模板引擎只是将指定模板内容(字符串)中的特定标记(子字符串)替换一下便生成了最终需要的业务数据(比如网页)。
- 其他:置换型模板引擎实现简单,但其效率低下,无法满足高负载的应用需求(比如有海量访问的网站),因此还出现了“解释型”模板引擎和“编译型”模板引擎等。
- DOM(文档对象模型):DOM 是一个 可以访问和修改当前文档的 API。DOM 提供了一种表述形式——将文档作为一个结构化的节点组(Node和Element)以及包含属性和方法的对象。它所提供的API可以为JS等语言提供能力去访问和操作这些节点(Node和Element)的属性和方法。HTML,XML 和 SVG 都扩展了基本的 DOM 接口来操作它们各自私有的元素类型。(本文特指用JS去操作HTML)
- 静态内容与结构:
- 样式
- 静态样式:
- CSS:CSS样式表(除C3动画外的部分用来控制页面内容展示的样式,可通过选择器选中HTML元素,并为他设置样式)
- 动态样式:
- C3样式动画:可根据样式变化生成补间动画;
- JS定时器:可利用定时器操作DOM,生成样式的变化;
- 静态样式:
- 浏览器以及硬件接口访问与交互
- 例如触控事件、全屏、地理位置访问、浏览器滚动等与浏览器以及硬件设备的交互行为;
- 事件冒泡
- 事件委托
- 内容数据与状态数据的处理
- 利用JS算法对内容数据和状态数据进行有目的的增删改查;
- 内容数据与状态数据输入与输出
- 本地:利用JS与本地数据(用户输入数据、缓存数据)控制内容数据与状态数据的更新;
- 云端请求与通信:利用HTTP请求与后端进行交互,进行内容数据与状态数据的更新;
- 调试
- 利用调试工具(例如浏览器调试工具)对样式与功能进行调试;
- 内容、结构以及相关操作
- 思想维度
- 普通
- 原生原理的理解与原生代码驾驭
- API使用
- 算法实现
- 方法的升级与性能的优化
- JS高级(函数封装)
- 库与框架的使用
- 库与框架的封装
- 普通
参考资料:
(1)超文本标记语言Html详解:
上:http://blog.csdn.net/a464057216/article/details/52226285
下:http://blog.csdn.net/a464057216/article/details/52332548
(2)HTML5:https://developer.mozilla.org/zh-CN/docs/Web/Guide/HTML/HTML5
【从html到算法框架】科技白学习计划书的更多相关文章
- 强化学习(十七) 基于模型的强化学习与Dyna算法框架
在前面我们讨论了基于价值的强化学习(Value Based RL)和基于策略的强化学习模型(Policy Based RL),本篇我们讨论最后一种强化学习流派,基于模型的强化学习(Model Base ...
- 知识图谱+Recorder︱中文知识图谱API与工具、科研机构与算法框架
目录 分为两个部分,笔者看到的知识图谱在商业领域的应用,外加看到的一些算法框架与研究机构. 文章目录 @ 一.知识图谱商业应用 01 唯品金融大数据 02 PlantData知识图谱数据智能平台 03 ...
- 机器学习算法总结(三)——集成学习(Adaboost、RandomForest)
1.集成学习概述 集成学习算法可以说是现在最火爆的机器学习算法,参加过Kaggle比赛的同学应该都领略过集成算法的强大.集成算法本身不是一个单独的机器学习算法,而是通过将基于其他的机器学习算法构建多个 ...
- 机器学习框架ML.NET学习笔记【4】多元分类之手写数字识别
一.问题与解决方案 通过多元分类算法进行手写数字识别,手写数字的图片分辨率为8*8的灰度图片.已经预先进行过处理,读取了各像素点的灰度值,并进行了标记. 其中第0列是序号(不参与运算).1-64列是像 ...
- 机器学习框架ML.NET学习笔记【3】文本特征分析
一.要解决的问题 问题:常常一些单位或组织召开会议时需要录入会议记录,我们需要通过机器学习对用户输入的文本内容进行自动评判,合格或不合格.(同样的问题还类似垃圾短信检测.工作日志质量分析等.) 处理思 ...
- 机器学习框架ML.NET学习笔记【2】入门之二元分类
一.准备样本 接上一篇文章提到的问题:根据一个人的身高.体重来判断一个人的身材是否很好.但我手上没有样本数据,只能伪造一批数据了,伪造的数据比较标准,用来学习还是蛮合适的. 下面是我用来伪造数据的代码 ...
- 机器学习框架ML.NET学习笔记【1】基本概念与系列文章目录
一.序言 微软的机器学习框架于2018年5月出了0.1版本,2019年5月发布1.0版本.期间各版本之间差异(包括命名空间.方法等)还是比较大的,随着1.0版发布,应该是趋于稳定了.之前在园子里也看到 ...
- 机器学习框架ML.NET学习笔记【5】多元分类之手写数字识别(续)
一.概述 上一篇文章我们利用ML.NET的多元分类算法实现了一个手写数字识别的例子,这个例子存在一个问题,就是输入的数据是预处理过的,很不直观,这次我们要直接通过图片来进行学习和判断.思路很简单,就是 ...
- 机器学习框架ML.NET学习笔记【6】TensorFlow图片分类
一.概述 通过之前两篇文章的学习,我们应该已经了解了多元分类的工作原理,图片的分类其流程和之前完全一致,其中最核心的问题就是特征的提取,只要完成特征提取,分类算法就很好处理了,具体流程如下: 之前介绍 ...
随机推荐
- spring springMVC
spring是一个开源框架,是为了解决企业应用程序开发,功能如下 目的:解决企业应用开发的复杂性 功能:使用基本的javabean代替EJB,并提供了更多的企业应用功能 范围:任何java应用 总之: ...
- 初识html5的localStorage本地存储
一.概述 HTML5 提供了两种在客户端存储数据的新方法: localStorage - 没有时间限制的数据存储 sessionStorage - 针对一个 session 的数据存储 之前,这些都是 ...
- px-rem 一个将px转换为rem的工具
将px转换为rem的工具,github地址:https://github.com/finance-sh/px-rem 怎样转换静态文件 安装: npm install px-rem -g 然后跑下命令 ...
- 浏览器渲染引擎,提高css渲染速度。
一.渲染引擎渲染引擎的职责是……渲染,也就是把请求的内容显示到浏览器屏幕上.默认情况下渲染引擎可以显示HTML,XML文档以及图片. 通过插件(浏览器扩展)它可以显示其它类型文档. 二.各种渲染引擎我 ...
- 【转】iOS UIApplication详解
1.状态栏UIStateBar的设置是在UIApplication里面设置的,它包含4中风格 2. - (void)beginIgnoringInteractionEvents; (void)endI ...
- layer弹出信息框API
首先向大家推荐layer,在这里也非常感谢贤心的贡献,非常不错的信息框及弹出层解决方案,为一些项目的前端开发提高了很大的效率,希望layer 越办越好! 下面是API,呵呵,官方抄袭过来的,为了自己看 ...
- python随心笔记
print "hello,world" #打印hello,world print "1+1" #打印字符串 1+1 单引号和双引号是单行字符串 print [& ...
- Linux paste命令
Linux paste命令用于合并文件的列. paste指令会把每个文件以列对列的方式,一列列地加以合并. 语法 paste [-s][-d <间隔字符>][--help][--versi ...
- js给数组去重写法
数组为 var list =['A','B','A']; 法一:常规做法,新建list,给list添加元素,添加前判断是否包含 var removeRepeatItem = function(list ...
- github fork后的pull和保持同步
前言 对github上的某个项目贡献自己的修改,但自己可能并没有那个仓库的权限,那要如何操作呢?git的机制和svn还是有些区别的,本文做些记录. 思路1 clone项目到本地,有修改之后,直接提交到 ...