1. 首页
  2. 资讯

flash编程

为什么不用flash替代h5?做浏览器开发10年,是有内核的浏览器,不是国内以前那种套壳浏览器。 最早非IE浏览器的插件的api是NPAPI, 这套api比较简单,也就是提供给插件一个绘图区,让插

为什么不用flash替代h5?

做浏览器开发10年,是有内核的浏览器,不是国内以前那种套壳浏览器。

最早非IE浏览器的插件的api是NPAPI, 这套api比较简单,也就是提供给插件一个绘图区,让插件绘制一些简单的内容。再和浏览器做些简单的交互。NPAPI的本意是这样的,但flash把它玩坏了。flash最早确实只是简单的解析自己的swf文件做点动画,后来flash越来越复杂,自带一个vm,解析动画,自带actionscript引擎,操作swf内的object. 后来还提供硬件加速来播放视频, 访问麦克风。 flash走火入魔了,你做了浏览器做的事,下一步是不是做操作系统的事?来个flash OS怎么样?

NPAPI提供的简单接口,根本没有预期到一个插件会做这么多事情,主循环里,只提供了几个api调用,让插件去绘制给定的区域,但flash做点事情太多了,浏览器原本只给你1s钟刷一下墙,你丫的还要干一堆其它的。1s完不成,浏览器也只能等你。于是大家经常看到网页卡住不动了。浏览器表示,这个锅我不能背啊。

而flash插件自身,也由于过于复杂,也采用了多线程甚至多进程,在其他线程里把该准备的东西都准备好,浏览器叫我1s刷完自己的黑板,我就能刷完。但现实世界没那么理想化。记得三星的limo平台开发浏览器时,当时flash插件是印度人提供的引擎,线程同步做一塌糊涂,想完全做好线程同步,就会卡住浏览器。 不卡住,他们的插件机会在屏幕上乱画,超出浏览器给他的区域,就会把浏览器搞挂。我们做浏览器的很受伤,凭什么你flash插件的问题,让我来浏览器来背呢?我想苹果的iphone肯定会遇到类似的问题,所以人家干脆不支持,简直大快人心。

前面卡顿的以及和浏览器交互的问题,chromium里引入了ppapi,这套api很强大,卡顿这种问题是可以解决的。但安全问题,就没那么理想化了。前面也说了npapi,浏览器只提供接口,flash插件插件除了刷黑板以外,有没有挖墙角,浏览器完全不知道。flash插件的输入是来自网络的任意swf文件,黑客攻击一下,让flash插件挖一下墙角(偷个机器上的文件),在墙上打个洞(开个后门),把房子推掉(格式化硬盘),都是有可能的。

有人说,浏览器解析html,输入也不稳定,不也会有这种可能吗?是的,浏览器也有很多漏洞,以前的浏览器确实攻击者能肆意妄为。chromium引入沙箱结构,不同的任务在不同进程中进行。下载数据在一个进程,这个进程因为要处理缓存,所以可以访问硬盘,解析html在一盒进程,这个进程只能计算,他所在的namespace没有文件(这是操作系统提供的机制),没有网络,渲染进程只能访问渲染资源。 这就是所谓的沙箱,接受不稳定输入的html解析进程,即使有漏洞,也就是自己挂掉,也访问不了网络和磁盘。很理想吧,可flash不遵循这套东西,它什么都自己做,也就是破坏了沙箱机制。 chromium的开发人员,把flash扔到一个独立的进程中去,你挂掉就挂掉,别把我也弄挂掉了。可安全问题,还是没解决。chromium被爆安全漏洞,往往很快就做出反应,解决了。可有时候浏览器知道flash的插件上有个漏洞,但adobe根本不及时修。就算Adobe提供了新的插件,用户也不及时更新。浏览器开发人员做再多努力,你flash自己要作死,我们也挡不住。所以,最好的方法是,不带你玩了。这样世界就清净了。

大家都说乔布斯不支持flash,是商业目的,这个不好评价. 但从浏览器开发角度来说,丢掉flash真是大赞。

如何自学matlab编程或者python编程?

作为小白,在学习Python的时候,必然会走一定的弯路,有人在弯路上走丢了,有人走出了弯路。在此分享我的Python学习之路:

基础部分:

(1)初始Python:

1. Python 简介和发展历史
2. Python 优缺点
3. Python 能做什么
4. Python 环境搭建,命令行打印“Python 课程开始了!”
5. PyCharm 安装及使用
6. 输入、输出
7. 注释

(2)数据类型

1. 变量是什么、变量命名方式
2. 标识符有哪些
3. 数据类型概述,Python有中哪些数据类型
4. 数值类型
5. 算数运算符、比较运算符、逻辑运算符、运算符优先级
6. 数据类型转换

(3)逻辑控制

1. 布尔类型
2. if、if...else 、if...elif 、嵌套结构
3. 猜拳游戏
4. 字符串与切片
5. 字符串常用函数
6. while循环

(4)复杂类型和循环结构和算法

1. for和for ... else
2. break 、continue
3. 元组
3. 列表概念及操作
4. 集合
5. 算法:冒泡排序
6. 字典

(5)函数应用和递归算法

1. 文件操作概念
2. 文件打开和关闭
3. 文件读写
4. 文件定位读写
5. 文件重命名、文件删除
6. 文件夹操作
7. 递归打印目录
8. 在指定目标中文件中追加内容(包含目录、文件是否存在判断)

(6)文件操作

1. 模块简介
2. 使用标准库中的模块
3. 自定义模块
4. _name_属性
5. 包
6. 安装及使用第三方模块
7. 异常概念
8. 捕获异常
9. 异常的传递
10. 自定义异常

(7)面向对象

1. 面向对象概念介绍
2. 类和对象概念
3. 类的定义和实例化对象
4. 对象初始化状态
5. 魔方方法
7. self
8. 析构函数
9. 访问权限控制
10. 面向对象练习之回合制小游戏

(8)继承和多态

1. 单继承
2. 多继承
3. 重写父类方法和调用父类方法
4. 类属性和实例属性
5. 静态方法和类方法
6. 动态给实例添加属性与方法并使用__slots

(9)设计模式

1. 设计模式简介
2. 单例设计模式
3. new()
3. 简单工厂
4. 抽象工厂

进阶部分:

(1)函数高级特性

1. 函数变量
2. 生成器
2. 闭包
3. 装饰器
6. 匿名函数
8. 偏函数
9. 对象比较
10. 深拷贝和浅拷贝
11. 私有属性
12. 属性property

(2)进程

1. 进程简介
2. 单任务,启动进程实现多任务
3. 封装进程为进程池
4. 进程间通信(Queue)
5. fork创建进程
6. multiprocessing创建进程

(3)线程和协程

1. 线程简介
2. 启动一个线程
3. 线程间共享数据
4. 生产者与消费者
5. 协程简介
6. 协程原理
7. threading模块创建线程
8. 线程间通信
9. threadLocal变量

WEB前端技术

(1)HTML

1. HTML简介
2. HTML总体结构
3. HTML 5 和HTML 4的对比
4. HTML 基本语法
5. 常用标签
6. 练习案例:简单登录。客户端向服务器端传递数据

(2)

1. CSS 3.0 简介,盒子模型
2. 引入CSS的三种方式
3. 引入方式优先级
4. CSS 选择器
5. CSS 各种属性
6. CSS 伪选择器
7. 练习案例:完善页面效果。注册信息发送给客户端

(3)

1. JavaScript简介
2. JavaScript执行原理
3. JavaScript 组成(三部分)
4. ECMAScript核心语法:基本语法、数据类型、判断语句、循环、类型转换、数值类型判断
5. 内置对象
6. 字符串常用函数

(4)

1. DOM对象:获取元素的几种方式
2. BOM对象:弹出框、定时器、计时器

(5)

1. jQuery 简介
2. jQuery和JavaScript的联系
3. jQuery命名规则
4. jQuery对象和DOM对象转换
5. 全部选择器
6. 动画

(6)

1. jQuery中DOM操作
2. 事件
3. 循环遍历
4. 正则和表单验证(大量练习)

Linux基础

(1)Linux系统

1. Linux 发展历史介绍
2. 虚拟机安装(快速演示)
3. Cent OS 6.X 安装(快速演示)
4. 虚拟机快照和管理
5. 常用命令
6. 虚拟网卡概述,静态IP设置
7. 配置Python环境
8. 安装MySQL(解压版或yum)

(2)Redis单机版操作

1. NoSQL是什么,出现目的
2. Redis 简介
3. Linux中JDK 安装
4. Linux中Redis 单机版安装配置
5. Redis 数据类型
6. Redis 不同数据的命令操作演示
7. Redis 的windows客户端工具
8. Python 连接Redis

(3)Redis集群操作

1. 分布式概念
2. 集群概念
3. 什么场景适用集群
4. 集群搭建
5. Python连接Redis集群

6. 案例:缓存首页菜单内容


数据库基础及性能优化

(1)MySQL与Python交互

1. MySQL 初识
2. MySQL 安装(不占用课时)
3. MySQL 命令行工具简单实用
4. MySQL 客户端工具Navicat使用
5. MySQL 命令执行原理
6. 创建、删除数据库命令(带编码字符集)
7. 列类型
8. 创建、删除表命令
9. 约束:主键约束、唯一约束、非空约束
10. 单条数据CRUD
11. 练习案例:Python连接MySQL实现单表CRUD

(2)MySQL查询

1. 分组查询
2. 聚合函数
3. 内置函数
4. 分页查询
5. 排序
6. 视图
7. 索引

(3)MySQL 多表查询

1. 主外键约束
2. 关联查询(内连接、外链接)
3. 自关联
4. 子查询
5. 事务

(4)MySQL高级应用

1. MySQL慢查日志的开启方式和存储方式
2. MySQL慢查日志分析工具之mysqldumpslow
3. MySQL慢查日志分析工具之pt=query-digest
4. 如何通过慢查日志发现有问题的SQL
5. 通过explain查询和分析SQL的执行计划

6. SQL优化:Count()和Max()的优化、子查询的优化、group by 的优化、Limit查询的优化、索引优化


Python Web框架Django

(1)Django入门

1. Django简介
2. Django环境搭建
3. Django-Hello World
4. 显示登录页面
5. Get方式登录功能
6. Post方式登录功能
7. 注册功能
8. 显示注册页面
9. 处理注册功能

(2)Django数据库连接与分页

1. admin后台管理类操作数据库
2. 查询所有信息
3. 登录功能(连接MySQL)
4. 影片展示
5. 影片展示(原生分页)
6. Django分页
7. 页码翻页功能

(3)ORM

1. 单表查询CRUD
2. 创建数据库表
3. 一对一的关系
4. 一对多的关系
5. 多对多的关系
6. 学生注册功能

(4)多表操作

1. 查询班级信息_学生详情
2. 自定义Manager1(查询)
3. 逻辑删除_单个对象删除_多个对象删除
4. 自定义Manager3(create)
5. 分析Manager.create执行过程
6. 多表插入(重写save)

(5)高级查询

1. 聚合函数_分组聚合查询
2. 原生查询
3. Q查询_F查询
4. Django事务_查询两个特性
5. 配置URL
6. 请求和响应对象

(6)上传与下载

1. 文件上传
2. 文件下载
3. 重定向_错误订制页面
4. Cookie语法
5. 三天免登录

(7)Session

1. Session语法
2. Session应用(显示个人信息)
3. jsonpickle序列化隐藏字段
4. 读取静态文件
5. django引入静态文件

(8)模版使用

1. 模板渲染底层原理
2. 模板标签语法
3. 过滤器
4. 自定义过滤器
5. 全局上下文

(9)CSRF

1. 模板继承_CSRF原理
2. 画图分析CSRF原理
3. 自定义中间件
4. 分析CSRF源码
5. 修改Admin后台页面布局

(10)Ajax

1. 表单类
2. 表单校验(表单类)
3. 表单校验(JS原生校验)
4. AJAX语法
5. 用户名唯一校验(ajax)

最后学习, pythonWeb另外两大框架: Flask、Tornado。

学习flash有什么用处?

用处不大,

flash之前最大的用处就是在网页中的应用,但是现在HTML5发展太快了,flash能实现的功能基本上HTML5都可以做到,所以flash,现在被各大浏览器宣布在未来弃用,所以在这方面,标志着flash在网页中应用基本上走到了尽头。

flash在其它方面的应用,比如说动画,想想看现在3D的动画都玩不够,谁还会去玩你一个二D的动画.

所以flash基本上用处不大,不过现在市面应该还有不小的中小型与flash相关产业,但是基本属于被淘汰的产业

如果想学网页的话,可以搜一下HTML+CSS这方面知识

如果想学动画,unity3D这个可以学学

flash网站应该怎样优化?

建议弃掉flash,通过其他技术做出flash效果的网站。目前主流浏览器都开始逐步放弃对flash的支持。


搜索引擎也对flash极其不友好。


如果实在不能放弃flash这个技术,建议在网站增加内容版块,更新些文章。


如果网站受众集中且能预估或者已经实现了收益,而且收益比较可观,可以投放竞价,稳住在一个合理的ROI即可。

为什么flash会逐步被淘汰?

过去一年里,谷歌 Chrome、微软 Edge 和苹果 Safari 都陆续宣布停止支持 Flash,不受隔壁老王待见就算了,现在连亲妈也要抛弃它。。。


最近,Adobe 宣布,将要在 2020 年年底停止对 Flash 支持,对还在用 Flash 技术的开发者,Adobe 承诺会与游戏引擎开发商、游戏开发公司以及 Facebook 一起合作,帮助他们改用其他技术。

▲Adobe发布声明

其实 Flash 一直在苟延残喘地活着,而产品众多的 Adobe 也不指望它过日子,Flash 退市是迟早的事情。

但在欢声笑语打出 GG 之前,咱们不妨来聊一下 Flash 兴衰。

Flash最好的年华

2000 年前后,当时的互联网速度还只是「小水管」的状态,在这个网络环境下,能够流畅地播放视频,是一件很难得的事情。而 Flash 因为其体积小,具备流模式等特点,迅速得到大家推崇。

那时候,一家叫「Showgood」的公司在香港成立,本来他们是想复制美国蓝山电子贺卡公司的业务,但在开发的过程中,随着创始人陈君对作品要求不断地改变升级,渐渐发现,开发的内容已经超过了电子贺卡能承载的范围。

不知不觉,他们把电子贺卡做成了超过一分钟的 Flash 动画,完成后的作品发布在他们公司的网站上,没想到效果还不错,大家都挺喜欢。

考虑到当时资源的不足,他们把人气最高的三国题材作为他们的主要作品。凭借着大家耳熟能详的三国角色,但却是骑着摩托车,在摩天大楼中穿梭的 kuso 设定,以一种完全无厘头的方式将传统经典进行了颠覆式的诠释。(XX日报准备出击)

这部误打误撞的 Flash 动画就是《大话三国》,以陈小春《神啊救救我吧》那首歌为背景音乐,调侃吕布和貂蝉的爱情故事的那集,被称作这个系列的经典。

▲刘关张三兄弟

随后他们又制作了番外篇《小兵的故事》,为整个 Flash 商业动画进行了一次探路。

除此以外,还诞生了一大群制作 Flash 动画的爱好者——闪客,其中不乏依然在动画界活跃的佼佼者。比如彼岸天文化的两个创始人梁旋和张春,早期他们制作的 BOBO 表情包被网友广泛使用,后来制作了 的 Flash 动画《燕尾蝶》,质量也是杠杠的。

▲《燕尾蝶》

到了 2016 年,他们已经用《大鱼海棠》收获了无数观众的掌声。(虽然这不是 Flash 做的)

▲口碑不错的《大鱼海棠》

另外,Flash 还带起了一批像 XX99 这类的小游戏网站,并且当年在社交网络超火的《开心农场》、《QQ餐厅》等都是 Flash 做出来的。

▲还偷菜么同学

从 Flash MX 2004 开始,他们开始把视频单独作为一种文件格式提出来,就是大名鼎鼎的 FLV,这种视频格式的出现引爆了视频流媒体整个行业,Youtube、优酷、土豆等视频网站都是借此弹起。至今一些在线视频点播网站依然保留着 Flash 播放器的选项。

时代的弃子

随着互联网的发展,当年的「小水管」网络已经不复存在,Flash 体积小,制作快,成本低等优势被缩小到零,反而因为其内容少,不精美,低成本的劣势被无限放大。

加上现在家用电脑配置不断升级,AE、3DSMAX、MAYA 等强大的制作软件让普通制作者得到更大的发挥,Flash 动画没落是必然的事情。

▲Flash制作界面

▲3DMAX制作画面

PC 端很难玩下去,智能手机的兴起会不会是 Flash 复兴的机会呢?

2007 年,苹果发布了 iPhone;

2008 年 3 月针对 iPhone 的 SDK 提供免费下载;

2008 年 7 月,APP Store 正式上线;

2008 年 9 月,谷歌正式发布了 Android 系统

iPhone 让当时的消费者耳目一新,但唯一让大家不能理解的是,苹果这个新产品居然不支持当时统治互联网的 Flash,消费者对 iPhone 支持 Flash 的呼声非常高。

▲乔布斯:我不加嘿嘿嘿

但乔布斯在 2010 年发布了一封公开信,毫不留情地谴责了这个统治互联网的家伙一番。

不够开放(说得好像你 iOS 开放一样)。Adobe 拥有 Flash 100% 的技术专利,如果 iPhone 支持 Flash,意味着苹果要被 Adobe 牵着鼻子走,这是苹果不愿意看到的局面。

可靠性、安全性和性能也有所欠缺。Flash 长期以来存在的一些漏洞,可以让黑客不怕没地方爆破 Flash 用户的电脑。

还有续航和对触屏优化不足等原因,都让 Flash 显得有点尴尬。

乔布斯明确表示 iPhone 不会支持 Flash,其 Mac 也没有预装 Flash(即使装了也默认关闭),让这么一个意见领袖怼了一波,加速了 Flash 的衰亡。

哪怕 Adobe 满身是嘴,也无法反驳 Flash 在这个时代里确实不够优秀。

2014 年,谷歌的 Chrome 浏览器上有 80% 用户使用 Flash,但到了今年已经缩减为 17%。微软更直接,自己开发了一套 Silverlight 技术想要替代 Flash(虽然没成功)

说到底, Flash 是 Adobe 公司的产品,不仅仅是乔布斯,所有的互联网巨头都不愿意被别的公司牵制,H5 作为一种新技术,几乎可以实现 Flash 的所有功能,更重要的是,和 Flash 属于一家公司不同,H5 是一个开放的标准,哪怕有一些小毛病,也一定会受到大公司的极力推崇。

Geek君有话说

就和微软的 XP 一样,有全面压倒它的技术和标准出现后,退下来是必然的事情。这只意味着一个时代的结束,和另一个时代的开始,Flash 缔造了视频、页游的一个巅峰,不久后,互联网将正式全面拥抱 H5。

况且 Flash 生或死对普通用户来说根本无关痛痒,除了矫情说一句再见 Flash,大概就没什么好留恋的了吧。

本文来自投稿,不代表本站立场,如若转载,请注明出处。