Drops of Frontend

Posted by Mars . Modified at

杂记。

如何为用于提交的数据做验证

前端验证:必填项目是否确实、(邮箱、电话号、地址等)格式匹配、密码强度检测、验证码(简单的 图灵测试 );

后端验证:唯一性验证、验证码、敏感词;

前端验证的主要目的是对不影响安全性的验证进行预校验,减少后端负担,增加用户体验。(比如后端已经提供库存为零信息,购物车中商品在提交给后端前就应该校验是否有库存,否则提交给后端再返回无库存太降低用户体验。)

后端验证是必须的,因为所有关乎安全的验证都必须在后端进行。

前端如何进行seo优化

3.1 搜索引擎的运行原理

  1. 搜索引擎的后台,是一个巨大的数据库,里面存放了大量关键词 -> url映射;
  2. 搜索引擎收集数据,途径是通过网络爬虫
  3. 爬虫访问互联网上的连接,下载对应的内容进行关键词分析,如果判断有存储价值则进行存储;
  4. 当用户利用搜索引擎搜索关键词,服务器就从数据库中抽取关键词对应的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服务等。在同一台计算机上端口号不能重复,否则,就会产生端口号冲突这样的例外。

Keywords: Frontend
previousPost nextPost
已经有 1000000 个小伙伴看完了这篇推文。