zoukankan      html  css  js  c++  java
  • 2013第49周三IE9文档模式

    今天完善了原有模块的代码和注释,然后继续之前新模块的开发,并写了两边的service接口,除了因为邮件中有部分问题让我分心外,专心下来写代码的感觉真好,今天基本上没遇到多少让我新感悟的技术问题,就总结下之前遇到的几个问题吧。

    1.IE的文档模式,最近在调试页面时总是发现IE9会自动把文档模式切换为IE7,然后导致网页显示不正常,搜索下IE的模式,感觉下文写的不错

    http://www.cnblogs.com/zhoukaiwei/archive/2013/05/21/3090587.html

    在较新的IE浏览器中(如IE8, IE9, IE10),为了解决兼容性的问题,引入了浏览器模式和文档模式两个概念,浏览网页时可以通过按F12键看到这两种模式。

     

    浏览器模式的主要作用是为兼容较早版本的IE,它会控制浏览器发出的UserAgent,表示以哪个版本的浏览器发出请求,以此来允许为某个特定IE版本设计的代码正确执行(举例来说:有些代码真是判断ie版本的,还有css里也有判断ie版本的)。

     

    文档模式的主要作用是影响浏览器显示网页HTML的方式,在接到返回的HTML文件后,决定以哪个IE版本的文档模式解析该页面(举例来说:JS脚本就是依赖文档模式,IE9的js变化就需要IE9文档模式来支持)

    根据微软描述的IE兼容性策略,在IE8+访问一个页面要经过这样的流程:

    一、首先,浏览器要确定浏览器模式。上面说过,浏览器模式是在请求发送之前就必须确定,默认取最新(IE9为IE9标准,IE8为IE8标准),有两种方式可以更改它:

    • 通过开发者工具选择(可选项见上表);
    • 通过点击兼容性视图按钮;
    • 命中兼容性视图列表(微软维护的需要采用兼容性视图的列表。IE8+默认对这个列表和局域网的网址都会采用相应的兼容性模式);

    二、浏览器通过请求头里userAgent的值,告诉服务器当前是何种浏览器模式;

    三、服务器可以通过下面方式改变浏览器文本模式:

    • doctype;
    • X-UA-Compatible Meta或对应的响应头;

    四、浏览器综合考虑开发者工具设置、第三步服务器返回的设置、兼容性列表设置等等情况,决定页面使用何种文本模式。

    浏览器模式决定:1)发送给服务端的UA;2)默认的文本模式;3)如何解析条件注释。它在请求发送前就已经确定,且不受服务端控制。文本模式决定:1)排版引擎;2)JS引擎。它在浏览器得到响应后最终确定,服务端可通过doctype或X-UA-Compatible来控制。

    感觉应该是某些JSP页面页面旧的文档或IE7声明所致。 

    2.Java中StringBuffer和StringBuilder的区别,原来只知道用前者,后来看到新项目中用后者,刚搜索了下才发现两者区别是前者线程安全,后者单线程情况下速度更快,早知道在大多数情况下都应该用后者啊

  • 相关阅读:
    [模板] 多项式全家桶
    [模板] 最大流和费用流分别的两种做法
    [模板] Miller_Rabin和Pollard_Rho
    [模板] 半平面交
    hdu4624 Endless Spin (min-max容斥+dp)
    luogu5193 炸弹 (扫描线)
    luogu4055 游戏 (二分图博弈)
    [模板]后缀自动机
    [模板]fhqTreap
    loj2977 巧克力 (斯坦纳树+随机化)
  • 原文地址:https://www.cnblogs.com/doit8791/p/3458388.html
Copyright © 2011-2022 走看看