解决跨域问题的方法、提交请求 get 和 post 的区别、什么是渐进增强和优雅降级、针对页面性能优化,有哪些方案

 

1-解决跨域问题的方法?

方式一:使用ajax的jsonp

 服务器代码

 使用该方式的缺点:请求方式只能是get请求

方式二:使用jQuery的jsonp插件
插件下载网址:https://github.com/jaubourg/jquery-jsonp

服务器代码

 使用该方式的特点:与方式一相比,请求方式不只局限于get请求,还可以是post请求,但从服务器从获取的数据依然是jsonp格式

方式三:使用cors

服务器代码

使用该方式的特点:与前两种方式相比,前端代码和未处理跨域前一样,即普通的ajax请求,但服务器代码添加了一段解决跨域的代码
    // 设置:Access-Control-Allow-Origin头,处理Session问题
        response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
        response.setHeader("Access-Control-Allow-Credentials", "true");
        response.setHeader("P3P", "CP=CAO PSA OUR");
        if (request.getHeader("Access-Control-Request-Method") != null && "OPTIONS".equals(request.getMethod())) {
            response.addHeader("Access-Control-Allow-Methods", "POST,GET,TRACE,OPTIONS");
            response.addHeader("Access-Control-Allow-Headers", "Content-Type,Origin,Accept");
            response.addHeader("Access-Control-Max-Age", "120");
        }


cors高级使用:在springmvc中配置拦截器
创建跨域拦截器实现HandlerInterceptor接口,并实现其方法,在请求处理前设置头信息,并放行

在springmvc的配置文件中配置拦截器,注意拦截的是所有的文件

2-提交请求 get 和 post 的区别?
  • GET在浏览器回退时是无害的,而POST会再次提交请求。

     

  • GET产生的URL地址可以被Bookmark,而POST不可以。

     

  • GET请求会被浏览器主动cache,而POST不会,除非手动设置。

     

  • GET请求只能进行url编码,而POST支持多种编码方式。

     

  • GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。

     

  • GET请求在URL中传送的参数是有长度限制的,而POST么有。

     

  • 对参数的数据类型,GET只接受ASCII字符,而POST没有限制。

     

  • GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。

     

  • GET参数通过URL传递,POST放在Request body中。

3-什么是渐进增强和优雅降级?  

1、渐进增强:一开始只构建站点的最少特性,然后不断针对各浏览器追加功能;

2、优雅降级:使用优雅降级方案,Web站点在所有新式浏览器中都能正常工作,如果用户使用的是老式浏览器,则代码会检查以确认它们是否能正常工作。

4-针对页面性能优化,有哪些方案?
  

一、资源压缩与合并

主要包括这些方面:html压缩、css 压缩、js的压缩和混乱和文件合并
资源压缩可以从文件中去掉多余的字符,比如回车、空格。你在编辑器中写代码的时候,会使用缩进和注释,这些方法无疑会让你的代码简洁而且易读,但它们也会在文档中添加多余的字节。

1. html压缩

html代码压缩就是压缩这些在文本文件中有意义,但是在HTML中不显示的字符,包括空格,制表符,换行符等,还有一些其他意义的字符,如HTML注释也可以被压缩。

如何进行html压缩:

  1. 使用在线网站进行压缩(开发过程中一般不用)
  2. nodejs 提供了html-minifier工具
  3. 后端模板引擎渲染压缩

2. css代码压缩:

css代码压缩简单来说就是无效代码删除和css语义合并

如何进行css压缩:

  1. 使用在线网站进行压缩(开发过程中一般不用)
  2. 使用html-minifier工具
  3. 使用clean-css对css压缩
posted @ 2021-03-05 16:43  指尖陌凉  阅读(121)  评论(0)    收藏  举报