当前分类 / Web / 总共8篇

Google Fonts 国内使用方案

概述

当前 WordPress 等许多开源网站大部分的主题都在使用 Google 的在线字体方案 —— Google Fonts,Google 服务在大陆的崩溃情况使得大量的独立网站字体无法加载,大大影响到了国内相关网站的网页响应速度,现将解决方案总结如下:

Google Fonts 国内使用方案概览图 Google Fonts 国内使用方案概览图

解决方案一:本地加载字体包(推荐)

  1. 在 CSS 中找到被导入的 Google Fonts
1
2
#此处以该字体为例#
@import url(https://fonts.googleapis.com/css?family=Raleway:400,300,800|Lora:400italic|Playfair+Display:700);

阅读更多

ECMAScript 6 入门学习笔记

本文是基于阮一峰《ECMAScript 6 入门》做的个人学习笔记,方便今后查阅,所以以下内容基本上绝大部分出自阮一峰的博客。

笔记1:数据类型和语法块

简单说,ECMAScript 是 JavaScript 语言的国际标准,JavaScript 是 ECMAScript 的实现。

let 命令

ES6 新增了 let 命令,用了声明变量,使用它声明的变量只在所在的代码块中有效

1
2
3
4
5
6
7
{
    let a = 10;
    var b = 11;
}

console.log(a);  //Error  is not defined
console.log(b);  // 11

for 循环的计数器就很合适使用 let 命令。

1
2
3
4
for(let i = 0; i < 10; i++){
    //...
}
console.log(i);  //Error

而且 let 不存在变量提升(变量可以在声明之前使用),也就是说我们一般需要先使用 let 来声明变量才能使用。

1
2
3
4
5
6
7
//var
console.log(foo);  //undefined
var foo = 2;

//let
console.log(bar);  //Error bar is not defined
let bar = 3;

阅读更多

JavaScript 高级程序设计(第3版)学习笔记

笔记2:面向对象部分

这是阅读《JavaScript 高级程序设计》书籍的学习笔记,整理和归纳,方便自己今后复习和查阅,这里总结的基本上都是一些比较特殊的知识点,和 Java 等其他高级语言重复的地方不在归纳范围内。建议先阅读第一部分 非面向对象部分。此部分主要是理解 JavaScript 中的面向对象的实现思路以及如何实现继承。

理解对象

ECMAScript 中有两种属性:数据属性和访问器属性。

数据属性

数据属性有 4 个描述其行为的特征。

[[Configurable]]:表示能否通过 delete 删除属性从而重新定义属性,能否修改属性的特性,或者能否把属性修改为访问器属性。像前面例子中那样直接在对象上定义的属性,它们的这个特性默认值为 true.

[[Enumerable]]:表示能否通过 for-in 循环返回属性。像前面例子中那样直接在对象上定义的属性,它们的这个特性默认值为 true.

[[Writable]]:表示能否修改属性的值。像前面例子中那样直接在对象上定义的属性,它们的这个特性默认值为 true.

[[Value]]:包含这个属性的数据值。读取属性值的时候,从这个位置读;写入属性值的时候,把新值保存在这个位置。这个特性的默认值为 undefined.

1
2
3
var person = {
    name : "XiaoMing"
}

阅读更多

JavaScript 高级程序设计(第3版)学习笔记

笔记1:非面向对象部分

这是阅读 《JavaScript 高级程序设计》 书籍的学习笔记,整理和归纳,方便自己今后复习和查阅,这里总结的基本上都是一些比较特殊的知识点,和 Java 等其他 高级语言 重复的地方不在归纳范围内。第一部分是基础部分(即非面向对象部分),基本上是围绕变量和函数展开的。

分号

ECMAScript 中的语句以一个分号结尾;如果省略分号,则由解析器确定语句的结尾,如下例所示:

1
2
var sum = a + b                 // 即使没有分号也是有效的语句——不推荐 
var diff = a - b;               // 有效的语句——推荐

推荐使用封号

变量

ECMAScript 的变量是松散类型的,所谓松散类型就是可以用来保存任何类型的数据。换句话说,每个变量仅仅是一个用于保存值的占位符而已。定义变量时要使用 var 操作符(注意var是一个关键字),后跟变量名(即一个标识符),如下所示:

1
var message;

此时变量 message 会保存一个特殊的值 undefined, 定义变量的时候可以赋予初始值:

1
2
var message = "hi";
message = 100;   //有效,不推荐

虽然支持松散类型,但是不推荐给变量设置不同类型的值

阅读更多

webpack 安装和使用

webpack 是什么

webpack 是一款模块加载器兼打包工具,它能把各种资源,例如JS(含JSX)、coffee、样式(含 less / sass)、图片等都作为模块来使用和处理。 webpack 的核心是 依赖分析,把依赖分析出来了,其他都是细枝末节了。

安装 webpack

前提,你的电脑需要安装 node 和 npm.

使用 npm install webpack 安装 webpack.

入门示例

我们创建两个 js 文件:

src/bar.js

1
2
3
export default function bar() {
  //
}

src/index.js

1
2
3
import bar from './bar';

bar();

阅读更多

Kotlin语言和Gradle构建搭建SpringBoot工程

前言

最近想做一个小项目,遇到了后台开发问题,从Python、Go、Nodejs、Java、Kotlin中我对比选择了一下,最后还是决定使用自己最熟悉的Java开发,后来又想了一下,既然现在Android开发都是用Kotlin了,而且Kotlin语法这么灵活简介,为何不用Kotlin结合Gradle构建来搭建一个SpringBoot工程呢,整个过程也是本人在逐渐摸索,中间可能会遇到很多障碍和问题,但是没关系,俗话说开弓没有回头箭,因为我已经决定开始了。

阅读更多

Spring MVC概念和使用

参考链接:

《Spring MVC 学习指南(第二版)》

Spring MVC 是 Spring 框架中用于Web应用快速开发的一个模块。Spring框架是一个开源框架,源码下载地址:

1
git clone git@github.com:spring-projects/spring-framework.git

控制反转(IOC)

DI和IOC是差不多的概念,一个重要特征是接口依赖,是把对象关系推迟到运行时去确定。Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。

IoC 不是一种技术,只是一种思想,一个重要的面向对象编程的法则,它能指导我们如何设计出松耦合、更优良的程序。传统应用程序都是由我们在类内部主动创建依赖对象,从而导致类与类之间高耦合,难于测试;有了IoC容器后,把创建和查找依赖对象的控制权交给了容器,由容器进行注入组合对象,所以对象与对象之间是 松散耦合,这样也方便测试,利于功能复用,更重要的是使得程序的整个体系结构变得非常灵活。

阅读更多

JavaWeb开发快速上手篇

参考链接:

距上一次接触JavaWeb已经快6年时间了,最近因工作原因需要学习Web开发知识,这里做一个简单的记录。所以本文适合对JavaWeb开发有一定了解和基础的人群,达到快速拾起并上手的目的。

开发工具:IntelliJ IDEA 构建工具:Maven

创建工程

File -> New -> Project -> Java -> Java Web

创建JavaWeb工程 创建JavaWeb工程

工程目录结构:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
TestWeb
│  TestWeb.iml
│
├─.idea
│  │  encodings.xml
│  │  misc.xml
│  │  modules.xml
│  │  workspace.xml
│  │
│  └─artifacts
│          TestWeb_war_exploded.xml
│
├─out
│  └─artifacts
│      └─TestWeb_war_exploded
│          │  index.jsp
│          │
│          └─WEB-INF
│                  web.xml
│
├─src
└─web
    │  index.jsp
    │
    └─WEB-INF
        │  web.xml
        │
        ├─classes
        └─lib

阅读更多