<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>走走停停看看 &#187; 前端开发</title>
	<atom:link href="http://shawphy.com/tag/%e5%89%8d%e7%ab%af%e5%bc%80%e5%8f%91/feed" rel="self" type="application/rss+xml" />
	<link>http://shawphy.com</link>
	<description>关注HTML,CSS,JavaScript,jQuery等前端开发</description>
	<lastBuildDate>Mon, 12 Jul 2010 15:45:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>文件保存后自动刷新浏览器页面</title>
		<link>http://shawphy.com/2010/02/auto-refresh-page-after-saving-file.html</link>
		<comments>http://shawphy.com/2010/02/auto-refresh-page-after-saving-file.html#comments</comments>
		<pubDate>Sun, 28 Feb 2010 15:44:37 +0000</pubDate>
		<dc:creator>Shawphy</dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[前端开发]]></category>

		<guid isPermaLink="false">http://shawphy.com/?p=181</guid>
		<description><![CDATA[做前端的就是苦命，前端的键盘最苦命的是F5按键。 每次修改了点页面，写了点代码就要按F5去测试，着实让人崩溃。 除非用DreamWeaver这种工具，或者TopStyle这种，否则就免不了受罪。 这也归罪于微软各个GUI直接通信不良…… 今天找到个方案， 这位达人写了一个Firefox小扩展，用于修改js和host文件的时候用。 原理请参考上面的链接，我就拿来改了一改 敲击这里下载 注意：这个工具只是一个很原始的模型！！ 怎么用呢？ 很简单，在Firefox，打开你所要的页面，这个扩展会不停检测 D:\refresh.firefox 文件， 如果存在这个文件，他就会自动刷新当前页面并删除这个文件。 那么如何创建这个文件呢？ For VIM 如果你是用VIM的，在$MYVIMRC中加入这句话 function! b:AutoRefresh() &#160;&#160; &#160;!start cmd /c echo x &#62; d:\\refresh.firefox &#160;&#160; &#160;syntax on endfunction autocmd BufWritePost,FileWritePost *.html :call b:AutoRefresh() 其中 syntax on &#8230; <a href="http://shawphy.com/2010/02/auto-refresh-page-after-saving-file.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>做前端的就是苦命，前端的键盘最苦命的是F5按键。<br />
每次修改了点页面，写了点代码就要按F5去测试，着实让人崩溃。<br />
除非用DreamWeaver这种工具，或者TopStyle这种，否则就免不了受罪。<br />
这也归罪于微软各个GUI直接通信不良……</p>
<p>今天找到个方案， <a href="http://bluehua.org/2009/04/03/257.html">这位达人</a>写了一个Firefox小扩展，用于修改js和host文件的时候用。<br />
原理请参考上面的链接，我就拿来改了一改</p>
<p><a href="http://shawphy.googlecode.com/files/overlay.xpi">敲击这里下载</a></p>
<p><strong>注意：这个工具只是一个很原始的模型！！</strong></p>
<h3>怎么用呢？</h3>
<p>很简单，在Firefox，打开你所要的页面，这个扩展会不停检测 D:\refresh.firefox 文件，<br />
如果存在这个文件，他就会自动刷新当前页面并删除这个文件。</p>
<h3>那么如何创建这个文件呢？</h3>
<h4>For VIM</h4>
<p>如果你是用VIM的，在$MYVIMRC中加入这句话</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">function! b:AutoRefresh()</li>
<li>&nbsp;&nbsp; &nbsp;!start cmd /c echo x &gt; d:\\refresh.firefox</li>
<li>&nbsp;&nbsp; &nbsp;syntax on</li>
<li>endfunction</li>
<li>autocmd BufWritePost,FileWritePost *.html :call b:AutoRefresh()</li></ol></div>
<p>其中 syntax on 这句是为了可以不会出现一个等待键盘确认的事件。我是参考<a href="http://glacjay.is-a-geek.org/blog/archives/151">这里</a>的<br />
这就让html文件保存的时候生成d:\refresh.firefox文件了</p>
<h4>For Editplus</h4>
<p>如果你像我一样是Editplus用户的话，也很容易。如图<br />
<a href="http://shawphy.com/2010/02/auto-refresh-page-after-saving-file.html/editplus2refreash" rel="attachment wp-att-182"><img src="http://shawphy.com/wp-content/uploads/2010/02/editplus2refreash-300x245.png" alt="" title="editplus2refreash" width="300" height="245" class="alignnone size-medium wp-image-182" /></a><br />
设置Auto Run: After Save里的，添加命令就行了。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">cmd /c echo x &gt;d:\refresh.firefox</li></ol></div>
<p>只不过还是有点后遗症，随便什么文件保存它都会生成……<br />
作为一个不开源，没有插件体系，更新也很不勤快的编辑器……要求也不要太高了……<br />
友情提醒：请使用正版软件~可以在有能力的时候购买许可，或者转用其他开源编辑器，比如Notepad++等。不要让使用盗版成为国内软件开发人员的<a href="http://twitter.com/tinyfool/status/9227064084">原罪</a>……</p>
<h4>For Others</h4>
<p>基本原理都知道了，应该不难办了吧？</p>
<h3>系统资源占用</h3>
<p>实测下来，我E7200，CPU占用率不到1%。这个setInterval还是很节约资源的。</p>
<h3>带来的好处</h3>
<p>仔细想的话，节约的不只一步。你要切换窗口，要按f5，看效果，再切换回来继续调整。但如果你是宽屏或者是编辑器背景透明的话，无需切换就可以完成了。节约的是大把时间。如果是虚拟机或者其他电脑测试的情况下，也可以用局域网共享实现，非常好用。其他浏览器只要提供访问文件的接口，也可以如法炮制。</p>
]]></content:encoded>
			<wfw:commentRss>http://shawphy.com/2010/02/auto-refresh-page-after-saving-file.html/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>禁用脚本时显示元素——再从前端角度浅谈产品设计中的可用性和可访问性</title>
		<link>http://shawphy.com/2009/04/noscript-for-css.html</link>
		<comments>http://shawphy.com/2009/04/noscript-for-css.html#comments</comments>
		<pubDate>Mon, 27 Apr 2009 17:44:17 +0000</pubDate>
		<dc:creator>Shawphy</dc:creator>
				<category><![CDATA[其他]]></category>
		<category><![CDATA[交互设计]]></category>
		<category><![CDATA[前端开发]]></category>
		<category><![CDATA[可用性]]></category>
		<category><![CDATA[可访问性]]></category>

		<guid isPermaLink="false">http://shawphy.com/?p=159</guid>
		<description><![CDATA[三个月前，老鱼在其博客和支付宝UED博客中发表了浅谈产品设计中的可用性和可访问性。 文中阐述了这样一种状况，页面上有元素需要暂时隐藏以避免过多的信息对用户产生干扰。而隐藏的信息需要通过脚本的交互显示出来，以增强可用性。那么对于不启用脚本的用户，如何保证可访问性的问题。 文中提到两种方案： 实现方案1：采用css样式设置企业注册信息的容器默认为隐藏，当用户点选企业后通过js脚本改变容器的隐藏属性为显示。 实现方案2：通过脚本控制企业注册信息的容器的初始状态为隐藏，当用户点选企业后通过脚本改变容器的隐藏属性为显示。 方案一的缺点在于无视可访问性 方案二的缺点在于“要在页面结构加载完成后，再去初始化要隐藏的容器，当客户端网速不佳的情况下，会先显示企业注册信息的内容，几秒后又不见了，体验上有所折扣。” 我又在文章的一楼评论中提出了两个方案：解决了第二个方案的缺点 实现方案3：把脚本直接紧跟着需要隐藏的元素后面 实现方案4：在页面头部最开始的地方写入脚本，这个脚本用于生成隐藏元素的css代码。 方案三的缺点在于结构行为和样式的高度耦合，非常不利于维护，且易被同行耻笑。 方案四比上面略好，但同样由于行为和样式的混杂，不利于维护。 还有这位兄弟提出的 实现方案5：用脚本给body加上个class，所有需要隐藏的元素的CSS都用这个class开头，比如 .js #id{display:none;} 今日又发现新思路，利用noscript标签。这个圡圡的标签。这本来应该是最先想到的，却似乎思维被僵化了，一味从JS和CSS角度去看了，忽略了HTML本身。 实现方案6：首先使用方案一，直接用CSS隐藏元素，然后再方案一的基础上，增加noscript标签，其中的再写入CSS用来覆盖先前的CSS。（演示代码代码在本文结尾） 是的，就这么简单、这么的圡，但很有效。对于 IE 6 和 Firefox 3测试通过。Chrome上我找不到关闭脚本的选项，故未经测试。 当一切看起来这么美好的时候，放到W3C的验证里边就有麻烦了，XHTML下他说noscript不能没有object?我很晕，然后放上object后他又说style不能放在这里，只能放在head里。我换用了link也一样报错。换了html 4也没有好转。 我在XHTML的描述中没有找到相关内容 http://www.w3.org/TR/xhtml1/ 而在HTML 4.01中发现，http://www.w3.org/TR/html401/interact/scripts.html#h-18.3.1 然后我纳闷了一下，里边并没有提到noscript里不能放style和link。进一步考据，找到http://www.w3.org/TR/html401/struct/links.html#h-12.1.3 这里提到 The LINK element may only appear in the &#8230; <a href="http://shawphy.com/2009/04/noscript-for-css.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>三个月前，老鱼在其博客和支付宝UED博客中发表了<a href="http://ued.alipay.com/?p=826">浅谈产品设计中的可用性和可访问性</a>。<br />
文中阐述了这样一种状况，页面上有元素需要暂时隐藏以避免过多的信息对用户产生干扰。而隐藏的信息需要通过脚本的交互显示出来，以增强可用性。那么对于不启用脚本的用户，如何保证可访问性的问题。<br />
文中提到两种方案：</p>
<blockquote><p>
<strong>实现方案1：</strong>采用css样式设置企业注册信息的容器默认为隐藏，当用户点选企业后通过js脚本改变容器的隐藏属性为显示。<br />
<strong>实现方案2：</strong>通过脚本控制企业注册信息的容器的初始状态为隐藏，当用户点选企业后通过脚本改变容器的隐藏属性为显示。
</p></blockquote>
<p>方案一的缺点在于无视可访问性<br />
方案二的缺点在于“要在页面结构加载完成后，再去初始化要隐藏的容器，当客户端网速不佳的情况下，会先显示企业注册信息的内容，几秒后又不见了，体验上有所折扣。”</p>
<p>我又在文章的<a href="http://ued.alipay.com/?p=826#comment-396">一楼评论</a>中提出了两个方案：解决了第二个方案的缺点</p>
<blockquote><p><strong>实现方案3：</strong>把脚本直接紧跟着需要隐藏的元素后面<br />
<strong>实现方案4：</strong>在页面头部最开始的地方写入脚本，这个脚本用于生成隐藏元素的css代码。
</p></blockquote>
<p>方案三的缺点在于结构行为和样式的高度耦合，非常不利于维护，且易被同行耻笑。<br />
方案四比上面略好，但同样由于行为和样式的混杂，不利于维护。</p>
<p>还有<a href="http://blog.fouland.com/2009/01/noscript-for-css/">这位兄弟</a>提出的</p>
<blockquote><p><strong>实现方案5：</strong>用脚本给body加上个class，所有需要隐藏的元素的CSS都用这个class开头，比如 .js #id{display:none;}
</p></blockquote>
<p>今日又发现新思路，利用noscript标签。这个圡圡的标签。这本来应该是最先想到的，却似乎思维被僵化了，一味从JS和CSS角度去看了，忽略了HTML本身。</p>
<blockquote><p><strong>实现方案6：</strong>首先使用方案一，直接用CSS隐藏元素，然后再方案一的基础上，增加noscript标签，其中的再写入CSS用来覆盖先前的CSS。（演示代码代码在本文结尾）
</p></blockquote>
<p>是的，就这么简单、这么的圡，但很有效。对于 IE 6 和 Firefox 3测试通过。Chrome上我找不到关闭脚本的选项，故未经测试。</p>
<p>当一切看起来这么美好的时候，放到W3C的验证里边就有麻烦了，XHTML下他说noscript不能没有object?我很晕，然后放上object后他又说style不能放在这里，只能放在head里。我换用了link也一样报错。换了html 4也没有好转。<br />
我在XHTML的描述中没有找到相关内容 http://www.w3.org/TR/xhtml1/<br />
而在HTML 4.01中发现，<a href="http://www.w3.org/TR/html401/interact/scripts.html#h-18.3.1">http://www.w3.org/TR/html401/interact/scripts.html#h-18.3.1</a><br />
然后我纳闷了一下，里边并没有提到noscript里不能放style和link。进一步考据，找到<a href="http://www.w3.org/TR/html401/struct/links.html#h-12.1.3">http://www.w3.org/TR/html401/struct/links.html#h-12.1.3</a><br />
这里提到</p>
<blockquote><p>The LINK element may only appear in the head of a document. </p></blockquote>
<p>又找到 <a href="http://www.w3.org/TR/html401/present/styles.html#h-14.2.3">http://www.w3.org/TR/html401/present/styles.html#h-14.2.3</a></p>
<blockquote><p>The STYLE element allows authors to put style sheet rules in the head of the document. </p></blockquote>
<p>但无论如何，我head里放个noscript，里边再带个style或者link就不让我通过验证了！什么世道！</p>
<p>当然，这么2的事情，W3标准的制定小组早就想到啦！ 在HTML 5中，这个问题将会被解决。可以参考这里： <a href="http://www.w3.org/TR/html5/semantics.html#the-noscript-element">http://www.w3.org/TR/html5/semantics.html#the-noscript-element</a>。同时代码页成功通过了验证。</p>
<p>标准这种东西我向来就把他当作迷信一样，不可不信也不可全信。对于这个问题，我宁可不遵守。因为无论从技术实现，还是语义化HTML，抑或者可用性角度来看，这都是个完美的解决方案，我不想被标准这个玩意所束缚。一方面现在主流的浏览器都支持，没有兼容性问题，另一方面将来的标准也支持这种做法，何乐而不为呢？</p>
<p>两种情况下不适合用方案六：<br />
1，你是极端完美主义者。<br />
2，你的老板或者客户只认W3C验证。</p>
<p>测试地址：<br />
<a href="http://shawphy.com/demo/noscript-for-css.html">http://shawphy.com/demo/noscript-for-css.html</a><br />
直接到W3C接受检验：<br />
<a href="http://validator.w3.org/check?uri=http://shawphy.com/demo/noscript-for-css.html">http://validator.w3.org/check?uri=http://shawphy.com/demo/noscript-for-css.html</a><br />
附代码，我为了方便其间，用了HTML 5的doctype：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;</span><span style="color: Gray;">!</span><span style="color: #00008b;">DOCTYPE</span><span style="color: Gray;"> </span><span style="color: #00008b;">HTML</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">html</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">head</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">meta</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">http-equiv</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Content-Type</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">content</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text/html; charset=utf-8</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">title</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">用noscript在禁用脚本时显示元素</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">title</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">meta</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">generator</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">content</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">editplus</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">meta</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">author</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">content</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Shawphy(shawphy.com)</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">style</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text/css</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; div{display:none;}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">style</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">noscript</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">style</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text/css</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; div{display:block;}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">style</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">noscript</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">head</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">body</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">div</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; 你看不到</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">div</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">a</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">http://validator.w3.org/check?uri=http%3A%2F%2Fshawphy.com%2Fdemo%2Fnoscript-for-css.html</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">到W3C验证</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">a</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">body</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">html</span><span style="color: Olive;">&gt;</span></li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://shawphy.com/2009/04/noscript-for-css.html/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>
