你是否应该在URL中使用www

文章翻译自于Should you use “www” in your URL or not?,这篇文章是写于2016,该不该在你的网站URL中使用www? 现在来看对于网站的SEO而言,了解一下还是有帮助的,并且MDN上也链接了这篇文章。

正文:

这是一个有很长时间的问题: 使用www或者不使用www? 多年来,人们会被问到这两者的区别,哪个对SEO更好,或者是否有必要修改他们的网址。

没有什么可惊讶的,网络上充满了关于这个话题的观点。一方面,支持www的人争论说“使用www能为超出一台服务器时网站扩展带来的挑战做好准备”;另一方面,支持无www的人坚称“使用www是冗余的并浪费时间”。

然而我们可以两方都支持,我们的观点是其实这不是太影响(Google也同意!)。对于普通的博客或自由职业者或者甚至机构,使用www或者不使用,都是绝对零优势。也就是说,他们在技术上是有区别的,并且有一个非常好的理由说明你为什么不应该同时使用。

阅读更多

ag-grid在angularjs中的使用入门

ag-grid介绍

  • 号称世界上最好的HTML5表格
  • 支持绝大多数主流框架: 原生JavaScript/Angular/React/Vue/AngularJS/Polymer/Aurelia/Web Components
  • 社区版和商业版,主要功能开放为社区版,商业版支持增强特性
阅读更多

2018年前端开发技能全貌

现在是2018年,前端开发中层出不穷的框架和新技术,如何能入门前端开发?
这个专栏就是为了这个问题而产生的,把握住不变的要点,然后去适应这个变化的前端世界。

阅读更多

CSS中background属性的使用指南

css中关于background属性的用法,经常会使用到,并且老是记不清,这里做一下总结,方便后面开发查阅。

background是多个属性的简写,因此要了解background中各个属性的用法,才能理解其本身。background是按照以下的顺序进行设置的:
background-clip, background-color, background-image, background-origin, background-position, background-repeat, background-size, 和background-attachment

阅读更多

AngularJS 1.x平滑升级Angular实战(翻译)

本文翻译自Directly Upgrading From AngularJS 1.X To Angular Without Preparing The Existing Code Base

正文:

当我们从AngularJS 1.x升级到Angular(2/4/5)时,我们通常会先准备AngularJS 1.x的代码:

angularjs-upgrade-1

这个过程会引入像组件这类新的AngularJS 1.x技术。并且,引入TypeScript和像SystemJS或者Webpack之类的模块加载器是准备已有代码的进一步工作。这样做的目的是为了让代码更接近Angular便于更好的集成。

但是,在一些情况下,准备已有的代码成本很大。例如,试想一下这样的情形,当你不想修修改已有的AngularJS1.x的代码,并且想要写一些Angular的应用。当这样的情况在你的项目中发生,跳过准备阶段是一个好的主意。

angularjs-upgrade-2

这篇文章一步步展示如何完成这个过程。像官方的升级教程一样,包含准备代码的工作,这里也是升级流行的AngularJS 1.x 手机分类实例

即使这个实例覆盖了AngularJS 1.5中引入的组件,这里展示的对使用控制器(controller)和指令(directive)的代码也适用。

整个实例代码可以在Github 仓库中找到。为了接下来每一步更容易,我针对每一步做了一个代码提交。

阅读更多

Echarts绘制多个系列数据一一对应坐标轴

问题

通过Echarts展示多个系列的数据,并且每个系列的数据只有一条展示在坐标轴的某个值上。
比如,Y轴类别A上展示A系列,Y轴类别B上展示B系列数据,X轴共享,正常配置数据会导致Y轴
上显示1条数据,但是会有两条空白。

解决方案

通过系列数据中的barGap属性,设置柱间距离为”-100%”,使各个柱重叠显示。

实例

See the Pen Echarts Demo独立系列独立坐标轴 by Perry (@perry2008084) on CodePen.

JavaScript中对象的几种创建方式

记录JavaScript中创建对象的几种方法。

工厂模式

工厂模式是一种设计模式,抽象创建具体对象的过程,用函数来封装特定接口并创建对象的细节。

实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/* 工厂模式 */
function createPerson(name, age, job) {
var o = new Object();
o.name = name;
o.age = age;
o.job = job;
o.sayName = function() {
alert(this.name);
};
return o;
}

var person1 = createPerson("Nicholas", 29, "Software Engineer");
var person2 = createPerson("Greg", 27, "Doctor");

console.log(person1);
console.log(person2);

优点:
解决创建多个相似对象。

缺点:
没有解决对象识别的问题。

阅读更多

通过css实现锚点跳转后的位置调整

设计导航菜单的过程中,有时候会涉及到二级子菜单,外部的或者是内部页面页面的跳转,这个时候,锚点可能会派上场。

其中使用锚点进行页面的各部分内容跳转,有时候页面的导航栏是使用固定定位(fixed)的布局,可能会导致标题遮挡部分跳转后的内容,因此,需要对锚点调整后的位置进行偏移。

方法

通过使用css实现锚点跳转后的位置调整:

定义一个class:

1
2
3
4
.named-target {
padding-top: 50px;
margin-top: -50px;
}

将这个class赋给锚点或者锚点后的元素即可。

原理

字面上的原理可以理解为元素外边距向上移动了50像素,使用上内边距给抵消了。
内在的原理,我还没理解,待理解了再更新。