最热门文章

常用标签

云输入法 好的站点 数据之美 数据库优化 网站优化 网页安全 跨浏览器 输入法 重构 页面优化 Android CSS css优化 facebook firebug HTML html重构 html5 HTTP协议 http历史 ie javascript Last Modified lighttpd linux linux后台开发 MYSQL mysql优化 netstat ping QQ QQ云输入法 QQWeb输入法 web web开发 Web服务器 web服务器配置 web设计 WEB颜色 xhtml

Posts Tagged ‘重构’

HTML重构读书笔记-上线运营吧

前面我们已经将html代码写的合乎语法,具备语义,能够在很多环境被较好的解释。 我们觉得说可以上线了,但是上线之前我们还需要来衡量一些其它的因素,如系统的安全性、性能考虑、页面的内容是否正确等。 上线前,我们还需要好好的检查代码里的如下这些方面: 1 需要安全考虑的HTTP请求,使用POST来替换GET方式。考虑一下:搜索引擎来请求会怎么样,用户访问一个超时的连接会怎么样? 2 替换可以通过GET方式获取的地方为GET。GET方式通过URL而不一定要是form来访问,能够回退、cache、预先抓取、收藏。需要注意参数长度有限制 3 在不怎么变化的情况下使用cache,在易变的情况下关闭cache,如果变动实在太频繁的话,需要使用etag来辅助缓存 4 flash使用时需要注意会牺牲一部分用户 5 适当的时候将联系表单更改为mailto,方便用户直接发邮件进行交流 6 设置适当的robots.txt规则来阻挡一些无谓的请求。 User-agent: * Disallow: /cgi-bin Disallow: /store/checkout User-agent: Googlebot Disallow: /staging Disallow: /experimental 环境已经搭好了,我们还需要做什么呢? 呵呵,我们还需要检查一下页面内容是否都是正确的: 1 流畅的内容表达,避免误拼。尽量避免一些带有歧义的表达,错别字等 2 删除那些失效的连接,可以使用这两个工具:http://validator.w3.org/checklink http://www.linklint.org/ 3 如果删除了页面,尽量提供跳转给用户到新的页面上来,或者统一的给用户提示。 RewriteEngine On RewriteOptions MaxRedirects=10 inherit RewriteBase   / RewriteRule   ^examples(.*) books/jdr/examples$1 [R] 4 将内容尽快的展示给用户,而不是让用户自己去导航。尽量少弄欢迎页这样的东东 5 对于一些敏感信息,如email这样的,尽量的隐藏起来,避免一些恶意的爬虫来爬取 <a href="mailto:elharo%40metalab%2Eunc%2Eedu">E-mail Me</a> 呵呵,上述都已经检查好了,跑一遍测试用例,在预发布机上进行一次校验,没有问题后,上线吧。

Posted in Web前端
Tags: , , ,

HTML重构读书笔记-熟悉html的语法

了解了一些html的基本语法后,我们需要在事件中来强化理解,从而加深影响,以后使用起来就会更加的得心应手。在实践中会有一些更多的细节的地方需要我们自己去斟酌和考虑。 了解html基本语法后,我们需要实践来学习html的语法,从而加深理解: 1 为了兼容,使用transitional的DTD来对文档进行校验。 2 删掉已经不再支持的一些标签。如sound、marquee等。 3 为每个img标签都加上一个alt标签。方便那些视觉障碍,或者兼容后续的一些语音浏览器、google、baidu等一些图片搜索更多会依赖alt属性来表示一张图片。 4 使用object标签来替换embed标签。Embed标签不是标准的,虽然同时可以存在任意多个属性,然而Object可以通过param来传递属性 <object         width="160" height="600">   <param value="sameDomain" />   <param value="banner.swf" />   <param value="high" />   <param value="#006699" />   <embed src="banner.swf" quality="high" bgcolor="#006699"          width="160" height="600"          align="middle" allowScriptAccess="sameDomain"          type="application/x-shockwave-flash"   pluginspage="http://www.macromedia.com/go/getflashplayer" /> </object> 为了兼容一些老的浏览器,可以在object里面写上embed标签来做兼容。 5 尽量使用strict的DTD。由于strict的DTD删除了一些遗留的表现元素的标签,需要做一些圆润的处理:                1) center用css来取代text-align:center                2) font用css来取代font-size、font-family、color                3) 替换i标签为em或者span。由于i标签更多是表现而无语义,所以在一些无显示的浏览器上并没有效果。                4) 替换b为strong或者span                5) 使用css属性来替换color属性                6) 将img标签中的诸多属性移动到CSS中来                7) 替换applet为object                8) 用css来表示big, small, strike, s, ...

Posted in Web前端
Tags: , , ,

HTML重构读书笔记-了解html的语法

对html进行重构,重构之前我们至少需要了解学习一下html的语法。打好基础功夫后,我们才能对重构的过程做到可控。 目前通常使用的xhtml的文档格式是什么样的?什么样的文档内容才是符合xhtml规范的机构的? 在不同的浏览器下试试这段html代码,看看它的DOM树是什么样的: <p>The quick <strong>brown fox</p> jumped over the <p>lazy</strong> dog.</p> 不合乎规范的html代码,在不同的浏览器下解析出来的文档结构是不一样的。这对于我们的css和javascript的代码都是极大的挑战。 XHtml的最基本的要求: 1 标签有始要有终。 2 空标签需要遵循空标签的规则.<br />(注意加上空格来兼容一些老的浏览器)或者<br></br> 3 属性都需要有值。如同checked=”checked” 4 注意&以及<以及”、’的转义 5 只能有一个根节点html 6 没有预定义的节点需要在DTD中进行定义 7 Xhtml对标签和属性都要求是小写。 8 属性的值都需要使用单引号或者算引号括起来。(google处于带宽考虑,并不一定这样哦) 9 标签避免彼此交叉。(由于不同的浏览器为此构建的dom树不一样,会导致css和js出现问题的) 10 尽量使用UTF8的编码。通用,大部分浏览器都能识别 11 尽量引入Doctype <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> 详细的说明下三种DTD的区别: 三种DTD:frameset, transitional, strict. 1) frameset 允许页面包含frames 2) transitional保留了一些遗留的展现元素,如i、b、u、iframe、applet等 3) strict移出了遗留的展现元素,以及一些可以使用CSS来表达的属性。同时加强了一些元素的内容的描述。 浏览器一般是不会去加载DTD的,他们预先已经知道了这些DTD的,所以这里没有性能上的损失。不过一些XLST的工具回去加载DTD的。 12 尽量加上XHTML的命名空间,一些XLST的工具需要这个。 <html xmlns="http://www.w3.org/1999/xhtml">

Posted in Web前端
Tags: , ,

HTML重构读书笔记-重构前准备

意识到重构对于系统效率的重要性,是不是开始想要动手对现有的项目进行一次尝试呢。 呵呵,不要急,重构之前你做好准备了么,譬如说做好现有系统的备份了么,或者说你找到了你现有程序的问题在哪里了么? 下面这些重构中常常会使用到的工具,可能会在重构的过程中帮助我们来节省工作量,做到事半功倍的效果: 1 版本管理的工具,可以做到快速的回滚 2 问题定位工具,能够辅助我们去定位当前系统的问题所在 3 自动化测试的工具,能够辅助我们安全进行重构 我们常常用到的工具有如下这些,你还有其它工具推荐的么: 1 SVN版本管理,随时回滚。如果可以的话,准备一台干净一点预发布机,可以完整模拟运营的环境,便于进行校验。 2 HTML合法性校验工具:http://www.w3.org/QA/Tools/,查找当前系统存在什么问题。 1) http://validator.w3.org/ 可以下载到本地的服务器进行安装:http://validator.w3.org/docs/install.html 2) xmllint BBEdit 3 测试工具:(自动化测试) 1) HtmlUnit:http://htmlunit.sourceforge.net/(表现的更像是一个browser) 2) HttpUnit: http://httpunit.sourceforge.net/(相比上一个更底层一些) 3) JwebUnit 4) http://fitnesse.org/ 5) Selenium 4 Tidy(将重复的工作交给工具来完成吧) www.w3.org/People/Raggett/tidy/ 1) –asxhtml 2) --enclose-text 3) –clean 5 TagSoup


HTML重构读书笔记-为什么要重构

读了一次HTML重构Refactoring HTML,正好最近在搞一些html重构方面的东东,边度边思考,有一些收获,记录一下,便于以后来查询。 大家都可能会想html这么简单的一个排版的东东,有什么需要重构的呢?html的重构会有一些什么具体的东东呢? 开始之前,自己总结的几个概念。 重构的反面不是不重构,而是重写。重构的目的是为了更方便的进行重构。 重构的几个关键词:系统 一部分 调整 更好 可预期 可控 重构:是在一段可预期的时间内可控的对系统的一部分进行调整,从而使得系统的效率变得更高的过程。 为什么要重构? 1 代码可读性很差。Css和html混合在一起 2 渲染很慢 3 浏览器不兼容 4 页面需要一些不太流行的技术,如silverlight,flash等 5 安全性差。可能被人引发xss漏洞 6 SEO太差,被搜索引擎索引在很后的页面 7 用户的抱怨  重构些什么? 1 XHMTL 2 CSS 3 REST XHTML 1 良好的格式,减轻浏览器容错的工作。 2 减少跨浏览器编程js和css调试的时间。 3 可以使用一些新的技术,如SVG、MusicXML等。HTML更多关注文本和图片。 CSS 1 样式和展现分离,相同的内容可以在不同的平台上展现,如手机平台,台式机平台。 2 抽象出来的样式可以四处可用。减少工作量。DRY,Don't Repeat Yourself. (常用的reset.css) 3 抽象出来四处可用,节省带宽。 REST: Representational State Transfer深入理解http协议 关注:Form、UA用户验证、Cookie、回话、状态 1 通过URL来定位资源: 如通过http://www.example.com/foo/bar来回去资源,总比说到 http://www.example.com/,然后在表单中输入bar,然后点击foo按钮会好一些。 2 在合适的地方(譬如无安全问题、查询、收藏夹)尽量使用GET方式的请求。 3 在需要安全验证如买东西,发表评论的地方使用POST方式。 4 每一次请求都是唯一的,客户端和服务器的状态各自独立,互补依赖,每次需要的信息通过通讯时带上来获取。无状态的服务能够提供cache以及扩展的方便性。