下面是一个正常工作的粘性定位的例子,当你滚动页面,sticky part1sticky part2 会固定在页面顶部

阅读全文 »

异常代码:

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
30
31
32
33
34
35
36
37
38
39
// 表单不能输入值
const SignUp = props => {
const Wrapper = styled.div`
border: 1px solid #f5f4f0;
max-width: 500px;
padding: 1em;
margin: 0 auto;
`;

const Form = styled.form`
label,
input {
display: block;
line-height: 2em;
}

input {
width: 100%;
margin-bottom: 1em;
}
`;

return (
<Wrapper>
<h2>Sign Up</h2>
<Form
onSubmit={...}
>
<label htmlFor="username">Username:</label>
<input />
<label htmlFor="email">Email:</label>
<input />
<label htmlFor="password">Password:</label>
<input />
<Button type="submit">Submit</Button>
</Form>
</Wrapper>
);
};

styled-components 部分的代码放在组件的外部,代码就正常了…

官方说明

It is important to define your styled components outside of the render method, otherwise it will be recreated on every single render pass. Defining a styled component within the render method will thwart caching and drastically slow down rendering speed, and should be avoided.

尤其在处理表单时,如果每输入一个字符就re-render组件,的确会很奇怪。

https://developer.yahoo.com/performance/rules.html?guccounter=1#csslink

  • Content
  • Server
  • Cookie
  • CSS
  • JavaScript
  • Images
  • Mobile

原文从七个方面总结网站性能提升。

本篇总结Javascript、Images方面。

Javascript

Put Scripts at Bottom 脚本放在底部

脚本会阻塞并行下载

HTTP / 1.1规范建议浏览器每个主机名并行下载最多两个组件

如果有多个主机名提供图像,则可以并行进行两个以上的下载,但是在下载脚本时,即使使用不同的主机名,浏览器也不会启动任何其他下载

defer脚本表示脚本不包含document.write,浏览器可以继续渲染

通常一个脚本如果可以defered,那它也可以移动到页面底部

Make JavaScript and CSS External 从外部引用js脚本和css文件

在HTML文档中内嵌的JavaScript和CSS会在每次请求HTML文档时被下载

使用外部文件通常会产生更快的页面,因为JavaScript和CSS文件被浏览器缓存

如果JavaScript和CSS在外部文件中,并且被浏览器缓存,则在不增加HTTP请求次数的情况下减小了HTML文档的大小

如果用户每次会话都有多个页面浏览,并且许多页面重复使用相同的脚本和样式表,那么缓存外部文件的潜在好处就更大

对于主页,这种每次会话只访问一次的页面,将js和css内联可能更好

一个样例:

对于许多浏览页面的第一个页面,内联js和css(减少请求次数,该页面加载完后动态下载外部文件,随后访问的页面会使用这些缓存

Minify JavaScript and CSS 压缩JavaScript和CSS

压缩代码指的是删除不必要的代码,减小代码体积(因此可以提升响应性能

混淆代码也是减小代码体积的方法,但是is more risky

除了压缩外部脚本和样式之外,可以并且也应该压缩内联的<script><style>块。

即使脚本和css文件已经被gzip了,压缩还能让它们的体积减少5%以上

在线压缩工具

阅读全文 »
0%