- 在制作一个网页应用或网站的过程中,你是如何考虑其 UI、安全性、高性能、SEO、可维护性以及技术因素的
- 谈谈你喜欢的开发环境
- 你最熟悉那一套版本控制系统
- 假若你有 5 个不同的样式文件 (stylesheets), 整合进网站的最好方式是
- 渐进增强和优雅降级之间的不同
- 你如何对网站的文件和资源进行优化
- 浏览器同一时间可以在一个域名下下载多少资源
- 请说出三种减少页面加载时间的方法
- 如果你参与到一个项目中,发现他们使用 Tab 来缩进代码,但是你喜欢空格,你会怎么做
- 请写一个简单的幻灯效果页面
- 如果今年你打算掌握一门新技术,那会是什么
- 请谈谈你对网页标准和标准制定机构重要性的理解
在制作一个网页应用或网站的过程中,你是如何考虑其 UI、安全性、高性能、SEO、可维护性以及技术因素的
UI:
ui的话,那要看是什么类型的页面了,比如说移动端的活动页,要炫酷、要有个性,当然也要符合它的主题。像普通的文章浏览页面,要美观、整洁。那像后台管理系统这种,就需要简单大方了。当然,不管是移动端还是pc端,我觉得最重要的还是用户体验了,对ui的选择和放置的位置要符合大部分用户的使用习惯。你不能因为你自己是左撇子,就把登录框的登陆按钮放左边吧,那不合适啊。
安全性:
1.对输入进行有效性验证(非法字符、特殊字符)
2.对交互操作进行身份验证和授权
3.异常错误处理
4.防止缓冲区溢出和内存泄漏
内存泄露是指你的应用使用资源之后没有及时释放,导致应用内存中持有了不需要的资源,这是一种状态描述
而内存溢出是指你的应用的内存已经不能满足正常使用了,堆栈已经达到系统设置的最大值,进而导致崩溃,这事一种结果描述
而且通常都是由于内存泄露导致堆栈内存不断增大,从而引发内存溢出。
5.注入攻击 (比如说用户可以将js代码当成数据输入)
6.不安全的存储 (比如说不能食用md5这种加密策略)
高性能:
1.DNS(域名系统)负载均衡:在DNS中为多个IP地址配置同一个域名如:www.baidu.com,因而查询这个域名的客户机将得到其中一个地址,从而使不同的客户访问不同的服务器,达到负载均衡的目的,从而减小服务端的压力。像我们新闻客户端的回流页就用了四台服务器。 DNS负载均衡是一种简单而有效的方法,但是它不能区分服务器的差异,也不能反应服务器的当前运行状态。
2.http重定向(通过客户端重定向来分散和转移压力,比如一些下载服务通常都有几个镜像服务器)。301重定向是网址重定向最为可行的一种方法,seo最为友好。
3.分布式缓存 相关文章
4.数据库扩展: 读写分离,垂直分区,水平分区
5.反向代理负载均衡:让代理服务器将请求均匀转发给多台内部web服务器之一上,从而达到负载均衡的目的。这种代理方式与普通的代理方式有所不同,标准代理方式是客户使用代理访问多个外部Web 服务器,而这种代理方式是多个客户使用它访问内部Web服务器,因此也被称为反向代理模式。
使用反向代理的好处是,可以将负载均衡和代理服务器的高速缓存技术结合在一起,提供有益的性能,具备额外的安全性,外部客户不能直接访问真实的服务器。并且实现起来可以实现较好的负载均衡策略,将负载可以非常均衡的分给内部服务器,不会出现负载集中到某个服务器的偶然现象。
6.seo
7.代码可维护性
谈谈你喜欢的开发环境
操作系统:windows,linux 编辑器:sublime text、atom、到现在用的vscode。感觉都挺好用的。 浏览器:chrome 工具:photoshop,fiddler,ftp、openVpn
你最熟悉那一套版本控制系统
git
假若你有 5 个不同的样式文件 (stylesheets), 整合进网站的最好方式是
根据class命名规则写样式,这样样式不会冲突,提取公共的样式,进行合并,非公共的单独拎出来。然后打包压缩一下就行了。如果每个文件都很大,就需要分模块加载了。
渐进增强和优雅降级之间的不同
印象中,渐进增强和优雅降级的概念是从css3的出现之后火起来的。由于低版本浏览器不支持css3,而css3的特效太优秀不忍舍弃,所以在高级浏览器中使用css3,在低版本的浏览器中保证其基本功能。
那么,渐进增强和优雅降级的概念呢。
渐进增强:针对低版本浏览器构建页面,保证最基本的功能,然后针对高级浏览器进行效果、交互等改进和追加功能达到更好的用户体验。
优雅降级:一开始就构建完整的功能,然后针对低版本浏览器进行兼容。
你如何对网站的文件和资源进行优化
利用多个域名来提供网站资源
1.文件合并,减少http请求
2.启用gzip压缩文件
3.使用CDN(内容分发网络)加速,降低通信距离
什么是cdn,content Delivery Network 内容分发网络。其目的是通过在现有的internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,使用户可以就近取得所需的内容,解决internet网络拥塞的状况,提高用户访问网站的响应速度。
比如之前的图片的url是:abc.123.com/img1/test.png
加了cdn之后的图片url是:cdn.com/img1/test.png
页面接收到图片的请求后,首先在cdn服务器上验证图片是否存在,如果存在,则直接输出给用户。如果不存在则请求源站进行图片下载,一边下载一边输出给用户,下载完成后把图片保存起来,下次访问就不用下载了。
4.缓存的使用,添加Expire/Cache-Control头
5.将css和js都放在外部文件中,css文件放在head里,js放在body后面。
6.减少dns查询,最理想的方法就是将所有的内容资源都放在同一个域(Domain)下面,这样访问整个网站就只需要进行一次DNS查找,这样可以提高性能。
7.文件压缩,最小化css和js的体积
8.避免重定向
重定向显然增加了浏览器到服务器的往返次数
浏览器同一时间可以在一个域名下下载多少资源
两个吧
请说出三种减少页面加载时间的方法
如果你参与到一个项目中,发现他们使用 Tab 来缩进代码,但是你喜欢空格,你会怎么做
那配合一下啊,等项目结束后还是使用自己的习惯。
请写一个简单的幻灯效果页面
如果今年你打算掌握一门新技术,那会是什么
请谈谈你对网页标准和标准制定机构重要性的理解
网页标准和标准制定机构都是为了能让web发展的更‘健康’,首先约束浏览器开发者遵循统一的标准,其次约束网站开发者,这样降低开发难度,开发成本,SEO也会更好做,也不会因为滥用代码导致各种BUG、安全问题,最终提高网站易用性。