一、window.innerWidth和window.innerHeight

概念:计算浏览器窗口的内部高度(不包括工具栏和滚动条)。
通俗的来讲:整个浏览器中能够显示网页内容的部分。
特殊情况

  1. 滚动条:减去滚动条部分,滚动条宽度15px;
  2. 开发者工具:比如firebug,如果开发者工具处于打开的情况,在当前情况计算的innerHeight数值是不包括开发者工具所占高度。

safari-client

var windowSize = {
    width : function () {
        return window.innerWidth 
            || document.body.clientWidth 
            || document.documentElement.clientWidth;
    },
    height : function () {
        return window.innerHeight 
            || document.body.clientHeight
            || document.documentElement.clientHeight;
    }
};
console.log(windowSize.width());
console.log(windowSize.height());


- 阅读剩余部分 -

一、web标准的重要性以及好处

  1. 可以交付到更多的用户代理,也就是可以更好的适应多种浏览网页的容器。
  2. 能够改善性能,也就是可以利用更少的代码实现相同的功能。
  3. 更能够适合浏览器,对于兼容早期浏览器作出的努力更少。
  4. 分离内容和表现。
  5. 能够构建流动式(自适应的)页面。
  6. 流水线式生产,可以让内容和表现的开发分开进行,并且能够无缝地衔接起来。
  7. 使内容具有可访问性。
  8. 减轻维护代码的负担。
  9. 代码可以更好的适应未来。
  10. ...

二、XHTML的理解

在学习XHTML前应该先学习XML的基础知识,这样XHTML理解起来更加容易。

- 阅读剩余部分 -

一、前言

现在javascript的流行,前端的代码越来越复杂,所以我们需要软件工程的思想来开发前端。模块化是必不可少的,这样不仅能够提高代码的可维护性、可扩展性以及鲁棒性,更大的好处就是能够提升整个团队的开发效率,也能够让新进的程序员更快的接手工作。今天晚上根据前辈们的经验,写啦一个简单的模块定义的封装组件,当是练手吧。不过感觉还是蛮好用的。

二、学习模块化前我们应该先了解点什么呢?

其实突然就学习模块化的javascript开发,那还是比较丈二和尚,摸不着头脑的。不过如果是做过后台开发的程序员们,可能对于模块化的开发思想并不陌生,因为后台的这方面技术已经很熟悉了。那么这里我就分享一下前端javascript模块化开发的学习。

1. 了解模块化开发思想

如果有软件工程背景,那么这一思想就是你自身就应该掌握的。模块(module)就是可以组合、分解以及更换的单元,其实也满足组合大于继承等这些带来的好处吧。如果看成一个系统的话,我们可以从软件体系结构来理解,模块是较大系统中的独立部件,功能、状态与接口反映外部特性,逻辑反映的是内部特性。

- 阅读剩余部分 -

一、前言

上面写了console的乱码问题,接下来写的是web中servlet中的问题,大楷我比较关心一点,因为遇到这个的情况多一些吧。直接开始吧。

二、jsp和servlet中的乱码问题

其实在java文件的编译的情况和(一)中的情况是一样的,不过这里是由WEB容器去调用JVM而已,那么我们得知道一些默认的东西

比如特别重要的:(摘要)

如果Servlet 在运行的过程中,需要接受从客户端传来的字符如:表单输入的值和URL中传入的值,此时如果程序中没有设定接受参数时采用的编码格式,则WEB 容器会默认采用ISO-8859-1 编码格式来接受传入的值并在JVM 中转化为UNICODE 格式的保存在WEB 容器的内存中。Servlet 运行后生成输出,输出的字符串是UNICODE 格式的,紧接着,容器将Servlet 运行产生的UNICODE 格式的串(如html语法,用户输出的串等)直接发送到客户端浏览器上并输出给用户,如果此时指定了发送时输出的编码格式,则按指定的编码格式输出到浏览器上,如果没有指定,则默认按ISO-8859-1 编码发送到客户的浏览器上。

注意是ISO-8859-1就行了,tomcat 5.0之前采用是由用户设置的编码方式解析,tomcat 5.0过后有个参数(useBodyEncodingForURI)被默认了false,就使用了ISO-8859-1解析了,这儿是配置中的关键。

- 阅读剩余部分 -

一、前言

最近感觉自己对编码的理解还不够透彻,研究一下编码的问题,我觉得这个是值得研究的地方。自己开始研究的时候,很细心的看了不少的资料,这里和大家分享一下,希望对大家有用,原理有些我就不一条一条的来了,重点描述下吧。

二、控制台中的编码问题

  1. 查看操作系统(OS)的默认编码(这点还是有必要的,但是大多数在中国用的都是默认GBK)
Properties props = System.getProperties();
//操作系统信息
System.out.println("操作系统默认编码: " + props.getProperty("file.encoding"));
  1. 确定了默认的情况后,在java文件编译成class文件到内存年的时候,使用GBK编码编译【-encoding】,IDE可以使用默认。(中途的UNICODE编码可以查阅相关资料)
  2. 输出的时候也设置成GBK就成了

- 阅读剩余部分 -