网络知识 娱乐 【每日十分钟前端】基础篇16,iframe解析及其优缺点、CSS性能优化、JS创建对象的方法

【每日十分钟前端】基础篇16,iframe解析及其优缺点、CSS性能优化、JS创建对象的方法

1、iframe 是什么?有什么优缺点?
2、CSS性能优化?
3、JavaScript有哪些方法定义对象?


1、iframe 是什么?有什么优缺点?

iframe元素会创建包含另外一个文档的行内框架。
HTML标签,文档中的文档,一个内联框架可以在当前嵌入另一个文档。
iframe等于新建一个全新的,不受parent影响的页面上下文,在一定程度上类似于沙箱隔离。

优点、作用

(1)、用来实现长连接
webscoket不可用的时候作为一种替代。
(2)、跨域通信
(3)、历史记录管理
解决ajax化网站响应浏览器前进后退按钮的方案,在html5的history api不可用的时候作为一种替代
(4)、纯前端的utf8和ghk编码互转
比如在utf8页面需要生成一个gbk的encodeURIComponent字符串,可以通过页面加载一个gbk的iframe,然后主页面与子页面通信的方式实现转换,这样就不用在页面上插入一个非常巨大的编码映射表文件了。
(5)、无刷新文件上传
在FormData不可用时作为替代方案
(6)、页面调起客户端应用
在移动端用于从网页调起客户端应用
(7)、创建一个全新的独立的宿主环境
(8)、IE6下用于遮罩select

缺点

(1)、会产生很多页面,不容易管理;
(2)、框架结构有时会产生奇怪的状态,如果框架个数多的话,可能会出现上下、左右滚动条,降低用户体验;
(3)、现在的搜索引擎爬虫还不能很好的处理iframe中的内容,iframe会不利于搜索引擎优化;
(4)、设备兼容性差,很多移动设备无法完全显示框架;
(5)、iframe里的资源请求会增加页面的请求;
(6)、iframe阻塞页面的onload事件,给用户一种加载很慢的感觉。

2、CSS性能优化

(1)、减少css嵌套
(2)、不要在id选择器前进行嵌套
(3)、建立公共样式类
(4)、减少通配符
(5)、css sprite
(6)、合理利用继承机制

3、JavaScript 有哪些方法定义对象?

对象:
可以自定义存储一系列无序的相关数据

(1)、{},对象字面量语法

使用对象字面量赋值给变量

let obj = {
    name: "nam",
    age: 18
}

(2)、new Object()构造函数创建对象

Object()构造函数,将给定的值包装为一个新对象,给定的值是nullundefined, 它会创建并返回一个空对象。

let obj = new Object();
obj.name="nam";
obj.age=18;

(3)、工厂函数创建对象

如果要创建多个类似的对象,可以将new Object()过程封装到一个函数中,将来调用函数就能创建对象,相当于一个生产对象的函数工厂,用来简化代码。

function createObj(name,age) {
    let obj = {
        name: name,
        age
    }
    return obj
}

(4)、自定义构造函数

function fun(){
    this.name = 'nam';
    this.age = 18;
}
// 创建对象
let obj = new fun();

(5)、原型模式

可以让所有对象实例共享它所包含的属性和方法。

function fun(){};
fun.prototype.name = "nam";
fun.prototype.age = 18;

let obj = new fun()

(6)、组合构造模式和原型模式

组合使用构造函数模式与原型模式。
一般构造函数模式用于定义实例属性,原型模式用于定义方法和共享的属性。

function fun(){
    this.name = 'nam';
    this.age = 18;
}
fun.prototype.gender="male"
le obj = new fun