`

JavaScript基础及前端优化

阅读更多

一.JavaScript基础

1.闭包

        简单来说,一个函数内部调用了函数外部的变量就是闭包。

        简单闭包:

var i = 1;
function fn (){
	alert(i);
}

        复杂闭包:

var cache = (function(){
	var obj = {};//避免暴露非必要变量
	
	return {
		get: function(key){
			return obj[key];
		},
		set: function(key, value){
			obj[key] = value;
		}
	};
})();

        闭包的优点是有利于保护私有变量,加强了封装性;不增加额外的全局变量。但它强耦合,常驻内存。

 

2.作用域

        表示变量或函数起作用的区域,指代了它们在什么样的上下文中执行,亦即上下文执行环境。Javascript的作用域只有两种:全局作用域和本地作用域,本地作用域是按照函数来区分的。

<script>
var i = 1;
function fn(){
	alert(i);// undefined

	var i = 2;
	alert(i);// 2
}
fn();
</script>
<script>
var i = 0;
while(i < 3) {
	i ++;
	setTimeout(function(){
		alert(i);
	}, 1);
}

// 弹出3次“3”
</script>

 

3.作用域链

        当代码在一个环境中执行时,会创建变量对象的一个作用域链来保证对执行环境有权访问的变量和函数的有序访问。

<script>
	!function() {
		var global = {
			name: 'global'
		};
		
		function globalFn() {
			var inner = {
				name : 'globalFn inner'
			};
			!function() {
				var foo = 'foo';
				
				console.log(foo);
				console.log(inner.name);
				console.log(global.name);
			}();
		}	
		
		globalFn();
	}();
</script>

运行结果:

foo
globalFn inner
global

 

4.类的定义

方式一:

function Foo() {
    this.a = 1;
    this.start = function(){
        // ...
    };
    this.end = function(){
        // ...
    };
}

方式二:

function Foo() {
    this.a = 1;
}
Foo.prototype.start = function(){
    // ...
};
Foo.prototype.end = function(){
    // ...
};

方式三:

function Foo() {
    this.a = 1;
}
Foo.prototype = {
    start: function(){
        // ...
    },
    end: function(){
        // ...
    }
};

方式四:

Function.prototype.method = function(name, fn){
    this.prototype[name] = fn;
};
function Foo() {
    this.a = 1;
}
Foo.method('start', function(){
    // ...
});
Foo.method('end', function(){
    // ...
});

方式五:

// 链式调用
Function.prototype.method = function(name, fn){
    this.prototype[name] = fn;
    return this;
};
function Foo() {
    this.a = 1;
}
Foo.method('start', function(){
    // ...
}).method('end', function(){
    // ...
});

 

二.前端优化

1.css优化

        CSS文件写在头部进行引用

        避免在文档内内联样式

        避免滥用web字体

        避免CSS表达式

        用<link>代替@import

        避免使用(IE)过滤器

 

2.javaScipt优化

        把脚本放到底部

        避免在文档内内联脚本

        最小化DOM访问

var i = $(input);
i.attr();
i.val();

        最小化全局对象访问

var a = window.a;
a.xx
a.xxx

 

3.image优化

        优化图片

        a.把gif转成png

        b.运行pngcrush或其它工具压缩png

        c.运行jpegtran或其它工具压缩jpeg

        优化CSS雪碧图

        a.缩小图片间的间距

        b.把颜色近似的图片合并到一张雪碧图

       不要在html中缩放图片

        favicon.ico小且缓存

 

4.请求优化

        Combined Files-合并文件

        CSS Sprites-雪碧图,将多张图片合并成一张图片

        Inline Images-內连图片

        压缩资源文件

 

5.服务器优化

        Gzip压缩资源文件

        a.Gzip通常可以减少70%的响应大小

        b.可压缩的有html、js、css、json等文本文件

        添加Expires或Cache-Control

        a.对静态组件:Expires

        b.对动态组件:Cache-Control

        配置Etags

        尽量使用GET Ajax请求

 

        如下所示百度主页的网络请求信息:


        Etag 是URL的Entity Tag,用于标示URL对象是否改变,区分不同语言和Session等等。具体内部含义是使服务器控制的,就像Cookie那样。

        HTTP协议规格说明定义ETag为“被请求变量的实体值” 。另一种说法是,ETag是一个可以与Web资源关联的记号(token)。典型的Web资源可以一个Web页,但也可能是JSON或XML文档。服务器单独负责判断记号是什么及其含义,并在HTTP响应头中将其传送到客户端。

 

        常用cache-directive值

        对cache-directive值的浏览器响应

  • 大小: 25.8 KB
  • 大小: 24 KB
  • 大小: 134.6 KB
分享到:
评论

相关推荐

    基于JavaScript的WebGIS前端开发及优化

    近年来网站客户端开发规模越来越大并且有很多由AJAX开发的复杂页面, 系统中的客户端脚本大量增加,前端开发就产生了诸如代码量大、组织困难、难 ...把前端优化技术 应用到项目实现中,具体分析了各自的性能优化效果。

    前端优化与分析之基础

    以下是一些基础的前端优化策略和分析方法: 首先,减少HTTP请求数是优化的基础,因为每个请求都会带来额外的网络延迟。合并CSS和JavaScript文件,以及使用CSS Sprites技术能有效减少请求次数。 CDN(内容分发网络...

    《Web前端设计基础——HTML5、CSS3、JavaScript》课后答案整理.pdf

    根据提供的文件内容,我们可以整理出以下Web前端设计基础的知识点: 1. HTML5、CSS3、JavaScript概述 - HTML5是最新版本的超文本标记语言,用于创建网页的标准标记语言。它具有更快的访问速度、更好的搜索引擎优化...

    前端开发必备JavaScript(含源码课件笔记总结)

    一、JavaScript基础 在JavaScript的学习中,首先需要理解其基础语法,包括变量声明(var、let、const)、数据类型(原始类型和引用类型)、操作符(算术、比较、逻辑、三元)、流程控制(条件语句、循环语句)、函数...

    1500个web前端开发常用JavaScript特效

    JavaScript是Web前端开发的核心技术之一,它为网页添加交互性和动态功能,使用户界面更加生动。这1500个JavaScript特效涵盖了各种常见的前端应用场景,是开发者实现网页动态效果的重要资源库。 首先,我们来了解...

    前端 - 郭碧青《Web 前端性能优化思路与学习方法》.pdf

    此外,郭碧青也谈到了前端优化在移动端的应用,特别是在手机QQ兴趣部落项目中的实践。因为移动端设备的资源和网络条件通常受限,所以对于性能优化的要求更高。他分享了使用了如React Native和Vue等现代前端框架的...

    JavaScript+jQuery交互式Web前端开发-源代码.zip

    JavaScript 和 jQuery 是现代 Web 前端开发中的两个核心工具,它们共同为创建动态、交互式的网页提供了强大的功能。在本教程中,我们将深入探讨如何将这两种技术与 HTML 和 CSS 结合,以实现高效的网页设计。 ...

    精通JavaScript(中文清晰优化版)

    JavaScript,一种广泛应用于Web开发的脚本语言,是前端开发的核心技术之一,也是现代互联网应用不可或缺的部分。精通JavaScript意味着能够熟练地运用它来创建交互式、动态的网页内容,提升用户体验,实现复杂的功能...

    单页Web应用:JavaScript前端到后端 源代码

    总结,这个"单页Web应用:JavaScript前端到后端 源码"涵盖了从基础的JavaScript编程到复杂的前端框架应用,再到与后端API的交互,以及优化和测试的全过程。通过研究这份源码,开发者可以深入理解SPA的工作原理,提升...

    WEB应用前端优化技术与手段策略

    前端优化涵盖了多个方面,包括页面加载优化、缓存利用、JavaScript优化以及CSS优化。这些技术有助于加快页面加载速度,减少HTTP请求,提高响应时间,并且能有效地降低服务器压力。 1. **页面加载优化** - **减少...

    前端常用JavaScript特效合集

    1. **基础特效**:JavaScript基础特效包括动画效果(如淡入淡出、滑动、旋转等)、计时器和定时任务、事件监听与处理(点击、滚动、鼠标悬停等)。这些是构建任何复杂特效的基础,熟练掌握它们能让你在处理用户交互...

    web前端-Web前端性能优化的研究与应用.pdf

    前端优化的技术方法包括优先级队列、缓存机制、页面压缩、图片优化、JavaScript 优化等。这些方法可以有效地提升 Web 站点的性能。 知识点六: Ajax 异步工作方式的影响 Ajax 异步工作方式使得浏览器的 2 连接请求...

    javascript前端知识汇总

    JavaScript,作为一种广泛...以上内容涵盖了JavaScript前端开发中的主要知识点,从基础语法到高级特性,再到实际应用中的各种技术和最佳实践。通过深入理解和掌握这些知识,开发者可以有效地创建功能丰富的前端应用。

    「JavaScript学习资料整理」系列,构建JavaScript前端知识体系,积累JavaScript前端开发经验.zip

    总的来说,通过这个“JavaScript学习资料整理”系列,你可以系统地学习JavaScript,从基础到高级,涵盖语法、对象、DOM操作、模块化、异步编程、前端框架以及性能优化等多个方面。不断实践和积累经验,将使你在...

    《JavaScript基础与案例开发详解》

    由于提供的文件信息不包含实质性的内容描述,而是反复提及《JavaScript基础与案例开发详解》这本书以及一个网址***,这导致无法从中抽取具体的知识点。为了满足您的要求,我将基于“JavaScript基础与案例开发”这一...

    前端基础知识:JavaScript.zip

    史上最全web前端技术全套教程,包括: 前端API集成 前端基础知识 前端开发最佳实践 前端性能优化 前端构建工具 前端框架和库 前端测试工具 前端状态管理 等流行技术的系列教程

    JavaScript_收集前端挑战的学习和面试.zip

    总之,JavaScript是前端开发的基础,深入理解和掌握其核心概念、语法特性以及相关工具和库,对于成为一名优秀的前端开发者至关重要。通过解决实际问题,不断练习和提升,是学习JavaScript的最佳途径。

    JavaScript 案例教程源码

    JavaScript,作为全球最广泛使用的编程语言之一,是创建交互式网页和动态应用的关键工具。...这样,你不仅可以熟悉JavaScript的基础,还能了解和运用一些高级特性,为成为一名熟练的前端开发者打下坚实的基础。

    单页Web应用,JavaScript从前端到后端 高清pdf

    总之,《单页Web应用:JavaScript从前端到后端》是一本全面介绍SPA开发的权威指南,涵盖了从基础概念到高级实践的各个方面。通过阅读本书,读者不仅可以理解SPA的工作原理,还能掌握实际开发中所需的各种技术和最佳...

    JavaScript_完成前端面试所需的一切.zip

    1. **基础语法**: JavaScript的基础包括变量声明(var, let, const)、数据类型(如字符串、数字、布尔值、null、undefined、对象和数组)、运算符(算术、比较、逻辑、赋值、三元运算符)以及流程控制(条件语句、...

Global site tag (gtag.js) - Google Analytics