H5设计一个简单的在线编辑器

上面的代码,就是编辑器的代码,把对象直接绑定到window对象中,方便调用;

接下来,就是实现了,首先我们需要一个DOM对象来绑定编辑器:

\<\div class=\"contentEditable\"\>\<\/div\>
自己新建了一个div,这里最好使用ID,本人是测试,所以懒;

然后调用编辑器对象的init方法,初始化编辑器;

editorUtils.init(document.getElementsByClassName(\”contentEditable\”)[0]);
init的方法,主要是设置编辑器的高度宽度,已经class样式,继承绑定对象的属性,我只写了一个class绑定,之后就把绑定对象隐藏起来;

然后大功告成了,现在可以编辑内容了,我们来看一下截图:

Android 常用 mimeType 表

type有下面的形式。

Text:用于标准化地表示的文本信息,文本消息可以是多种字符集和或者多种格式的;
Multipart:用于连接消息体的多个部分构成一个消息,这些部分可以是不同类型的数据;
Application:用于传输应用程序数据或者二进制数据;
Message:用于包装一个E-mail消息;
Image:用于传输静态图片数据;
Audio:用于传输音频或者音声数据;
Video:用于传输动态影像数据,可以是与音频编辑在一起的视频数据格式。

http session解释

Web服务器跟踪客户状态通常有四种方法:

1,建立含有跟踪数据的隐藏字段  type=hidden

2,重写包含额外参数的URL

3,使用持续的Cookie

4,使用Servlet API中的Session(会话)机制

Session概念:

Session用于跟踪客户的状态,Session是指在一段时间内,单个客户与WEB服务器一连串相关的交互过程。在一个Session中,客户可能多次请求访问同一个网页,也有可能请求访问各种不同的服务器资源。

Session运行机制:

当一个Session开始时,Servlet容器将创建一个HttpSession对象,在HttpSession对象中可以存放客户的状态信息(例如购物车)。

Servlet容器为HttpSession分配一个唯一标志符,称为SessionID。Servlet容器将SessionID作为Cookie保存在客户的浏览器中。

每次客户发送Http请求时,Servlet容器可以从HttpServletRequest对象中读取SessionID,然后根据SessionID找到对应的HttpSession对象,从而获取客户的状态信息。

Session的接口HttpSession:

getId()   返回session的ID

Invalidate()  让当前session失效,Servlet容器会释放HttpSession对象占用的资源

getAttribut()     setAttribute()

isNew()  判断是否是新创建的session,如果是返回true 否则返回false

setMaxInactiveInterval()  设置session的最大有效时间 单位为秒 如果设置为负数,表示不限制session处于不活动状态的最大有效时间,默认的设置时间为30分钟

Session的生命周期:

当客户第一次访问WEB应用中支持Session的某个页面时,就会开始一个新的session

接下来客户访问这个WEB应用中不同的网页时,都处于同一个session中

默认情况下,JSP页面是支持Session的,如果想不支持Session,可使用标签<%@ page session=”false”%>

在下列情况下,Session将结束生命周期,Servlet容器将释放HttpSession占用的资源:

1,客户浏览器关闭?

2,Session过期

3,服务器端调用了HttpSession的Invalidate()方法

如何做到在浏览器关闭时删除Session?

严格的讲,做不到这一点。可以做的努力的办法是在所有的客户端页面里使用javascript的方法window.onclose来监视浏览器的关闭动作,然后向服务器发送一个请求来删除Session;

但是对于浏览器崩溃或强行杀死进程这种非常规手段仍然无能为力。

实际上我们在项目中也不会这么做,而是让服务器在Session过期时将其删除。

MySQL性能优化

max_connections=512:最大连接数,解释哈。
query_cache_type
含义:查询缓冲类型。

影响:为1是使用缓冲,2是除非使用SQL_CACHE才进行缓冲。对于缓冲而言,数据并不是实时的,有一定的延时。但是对于实时性要求不高的查询短时间内多次执行,是不划算的,这个时候就需要缓存。并且缓存中是区分空格和大小写的,如果大小写不一致和空格不一致,也会认为是不同的SQL,不会利用到缓存。虽然不设置查询缓冲,有时可能带来性能上的损失,但有一些SQL语句需要实时地查询数据,或并不经常使用(可能一天就执行一两次),这样就需要把缓冲关了,可以采用临时关闭的方法SELECT SQL_NO_CACHE。

建议:一般设置为1。

query_cache_size=32M
含义:指定MySQL查询结果缓冲区的大小。

影响:如果应用程序有大量读,而且没有应用程序级别的缓存,那么这很有用。不过不要设置太大,因为维护它也需要不少开销,这会导致MySQL变慢。

建议:通常设置为 32-512Mb。设置完之后最好是跟踪一段时间,查看是否运行良好。在一定的负载压力下,如果缓存命中率(Qcache_hits/(Qcache_hits+Qcache_inserts)*100))进行调整太低了,就启用它,如果命中率已经不错了,就可以把他调小一点。对于2G的内存,先从16M开始,一倍一倍的增加,直到命中率比较稳定为止。设置后可以使用show variables like ‘%query_cache%';进行查询.

table_cache=256
含义:table高速缓存的数量

影响:当某一连接访问一个表时,MySQL会检查当前已缓存表的数量。如果该表已经在缓存中打开,则会直接访问缓存中的表已加快查询速度;如果该表未被缓存,则会将当前的表添加进缓存并进行查询。

5G标准草案公布 改变的不仅是速度

国际电信联盟按计划开始征集5G方案,并公布了包含13个5G指标的草案,5G标准化进程前进了一大步。这些指标包括:每个5G基站至少能提供20Gbps的下行和10Gbps的上行宽带传输能力;必须确保时速500公里的交通工具上的用户数据连接不中断;连接5G用户的最大延迟不能超过4毫秒,甚至是保持1毫秒的超低延迟通信;单个5G网络在每平方公里的区域范围内,至少能够承载100万台设备。

这些指标意味着什么?可以想象这样的未来场景:一位外科医生搭乘通过5G网络操控的无人驾驶出租车前往火车站,在时速500公里的高铁列车上,他用6.4秒下载了一部2G大小的高清电影到手机中欣赏。途中他接到医院通知,要遥控千里之外的机器人进行手术,通过5G网络,手术完成得干净漂亮,机器人连“一眨眼”的延迟都没有……无人驾驶汽车、高铁列车上网、远程医疗,这位医生通过5G网络实现了“联通一切、控制一切”。

充满利润的新兴市场空间被称为“蓝海”。由华为、中兴、大唐电信等8家中国企业发起成立的TD产业联盟秘书长杨骅在接受记者采访时说,5G时代的“蓝海行业”将是经济中的各垂直行业,而非移动通信行业本身,5G网络将成为大幅提升各垂直行业生产效率和智能制造水平的基础设施,也为普通民众带来更智能的生活方式。

12
 
Copyright © 2008-2021 lanxinbase.com Rights Reserved. | 粤ICP备14086738号-3 |