Drops of Frontend
Posted by Mars . Modified at
杂记。
如何为用于提交的数据做验证
前端验证:必填项目是否确实、(邮箱、电话号、地址等)格式匹配、密码强度检测、验证码(简单的 图灵测试
);
后端验证:唯一性验证、验证码、敏感词;
前端验证的主要目的是对不影响安全性的验证进行预校验,减少后端负担,增加用户体验。(比如后端已经提供库存为零信息,购物车中商品在提交给后端前就应该校验是否有库存,否则提交给后端再返回无库存太降低用户体验。)
后端验证是必须的,因为所有关乎安全的验证都必须在后端进行。
前端如何进行seo优化
3.1 搜索引擎的运行原理
- 搜索引擎的后台,是一个巨大的数据库,里面存放了大量
关键词 -> url
映射; - 搜索引擎收集数据,途径是通过网络爬虫;
- 爬虫访问互联网上的连接,下载对应的内容进行关键词分析,如果判断有存储价值则进行存储;
- 当用户利用搜索引擎搜索关键词,服务器就从数据库中抽取关键词对应的url集合,返回给用户。
3.2 SEO:Search Engine Optimization
- 搜索引擎爬虫抓取网页内容,在提炼关键词的过程中,存在一个问题:它能否看懂网页内容;
- js等内容爬虫是看不懂的;
- 如果网页内容搜索引擎爬虫可以看懂,搜索引擎会提高该网站的权重,让其位于用于搜索关键词结果的较前面;
- 针对搜索引擎爬虫的爬取过程,对网页进行调整,让爬虫更容易理解网页的内容,提高在搜索引擎中的排名,就是SEO。
3.3 基本的SEO优化操作
-
合理的title、description、keywords搜索对这三项的权重逐个减小,title值强调重点即可;description把页面内容高度概括,不可过分堆砌关键词;keywords列举出重要关键词。
-
在网站上合理设置robots.txt文件;
-
生成针对搜索引擎友好的网站地图;
-
增加外部链接,到各个网站上宣传;
-
语义化的HTML代码:,符合W3C规范:语义化代码让搜索引擎容易理解网页
-
重要内容HTML代码放在最前搜索引擎抓取HTML顺序是从上到下,保证重要内容一定会被抓取
-
重要内容不要用js输出,一般的爬虫不会执行js获取内容
-
少用iframe搜索引擎不会抓取iframe中的内容
-
非装饰性图片必须加alt属性
-
提高网站速度网站速度是搜索引擎排序的一个重要指标
-
对于SPA应用,使用history模式进行路由
4. 机器码、字节码分别都是什么
4.1 机器码
机器码(machine code),学名机器语言指令,有时也被称为原生码(Native Code),是电脑的CPU可直接解读的数据(计算机只认识0和1)。
机器码就是计算机可以直接执行,并且执行速度最快的代码。
4.2 字节码
字节码(byte code)是一种包含执行程序、由一序列OP代码(操作码)/数据对组成的二进制文件。
字节码是一种中间码,它比机器码更抽象,需要直译器转译后才能成为机器码的中间代码。
字节码主要为了实现特定软件运行的软件环境,让软件执行与硬件环境无关。(跨平台)字节码的实现方式是通过编译器和虚拟机器。
编译器将高级语言源码编译成字节码,特定平台上的虚拟机器将字节码转译为可以直接执行的指令。(源码 -> 字节码 -> 机器码)
字节码的设计动机
- 跨平台
- 字节码解析速度更快
- 字节码size压缩的更小
- 字节码格式版本更稳定,语法改变大部分情况下不影响字节码格式
- 字节码可以在编译时提前做编译优化,节省运行时编译优化时间
- 字节码能保护源码,增加反编译成本
- 字节码能支持多语言,在其平台上开发新语言更容易
- 编译器前端和虚拟机可以独立开发,互不影响
- 有中间格式也更容易debug
5. “关注点分离”原则
7. 什么是同构应用?
同构,是指同一个程序可以跑在不同的平台上。
前端同构应用,是指同一份项目x代码,既可以客户端渲染,也可以服务端渲染。
同构,主要针对的是路由、模板和数据;
8. 框架和库的区别是?
整体上,框架是一类软件的抽象,而库是某一或一系列功能的集合。
控制方面
库是一系列函数(功能)的集合,由程序编写者决定使用哪些功能,以及功能的执行顺序。
框架的宏观控制流程是固定的,程序编写者只能编写其中的可扩展部分。
可扩展性
库的功能一般是固定的,是不可扩展的。
框架仅规定了基本的运作流程,具体的实现还是依赖实现者本身,因此具有可扩展性。
9. 请求中的端口号是什么含义?
端口号对应的是TCP报文段中的端口号(0 ~ 65535),它的主要作用是表示一台计算机中的特定进程所提供的服务。
网络中的计算机是通过IP地址来代表其身份的,它只能表示某台特定的计算机,但是一台计算机上可以同时提供很多个服务,如数据库服务、FTP服务、Web服务等,我们就通过端口号来区别相同计算机所提供的这些不同的服务,如常见的端口号21表示的是FTP服务,端口号23表示的是Telnet服务端口号25指的是SMTP服务等。在同一台计算机上端口号不能重复,否则,就会产生端口号冲突这样的例外。