<?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>Hpyer 的未知空间 &#187; 指南</title>
	<atom:link href="http://hpyer.cn/tag/%e6%8c%87%e5%8d%97/feed" rel="self" type="application/rss+xml" />
	<link>http://hpyer.cn</link>
	<description>现实的世界里寻找点滴的未知空间</description>
	<lastBuildDate>Tue, 20 Apr 2010 06:53:31 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Zend Optimizer 配置指南</title>
		<link>http://hpyer.cn/guide-for-config-zend-optimizer.html</link>
		<comments>http://hpyer.cn/guide-for-config-zend-optimizer.html#comments</comments>
		<pubDate>Sat, 11 Oct 2008 13:59:24 +0000</pubDate>
		<dc:creator>Hpyer</dc:creator>
				<category><![CDATA[Web 技术]]></category>
		<category><![CDATA[Optimizer]]></category>
		<category><![CDATA[Zend]]></category>
		<category><![CDATA[指南]]></category>
		<category><![CDATA[配置]]></category>

		<guid isPermaLink="false">http://hpyer.cn/?p=300</guid>
		<description><![CDATA[Zend Optimizer是由PHP核心引擎“Zend”创建者Zend技术公司所开的免费PHP优化软件。据Zend公司透露使用这个软件某些情况下至少可以提高性能30%以上！这么好的免费大餐当然要用，现在我们来谈谈如何配置这套软件。
Zend Opt的安装是傻瓜化的，安装向导会自动根据你的选择来修改php.ini帮助你启动这个引擎。下面我们来介绍下Zend Opt的配置选项，帮助你最大化自定义合理的配置。下边是我所用的配置文件，看不懂也不要着急，看完本文你就会完全明白。
现在我们来介绍下上边这个配置文件的含义：
[Zend]
zend_optimizer.optimization_level=1023    // 优化程度，这里定义启动多少个优化过程
zend_optimizer.encoder_loader=0    // 是否允许处理由 Zend Encoder 加密的 PHP 文件
zend_extension_ts="C:/Program Files/Zend/lib/ZendOptimizer.dll"    // 优化器所在目录
优化过程 zend_optimizer.optimization_level 详细解释
这里最为重点的部分，仔细看！Zend Opt总共有10个优化过程，从理论上说开的越多性能越好。当然，理论和实际永远都存在着差距。优化过程开启的越多对性能消耗也相对也越大，Zend Opt的10个优化过程并不相同也就是说效果不是平均的。Zend公司定义的最高值(High模式)为15，这里15指的是开启1-4号优化过程。当然，很多朋友并不满足于此，毕竟最高也只开启4个优化过程连总数的一半都没有。各个优化过程的对应的数字代码（值）如下：
 不使用      0  &#038;lt= 如果这样不如不装，还能节约点内存说！
 优化过程1(PASS1) 1
 优化过程2(PASS2) 2
 优化过程3(PASS3) 4
 优化过程4(PASS4) 8
 优化过程5(PASS5) 16
 优化过程6(PASS6) 32
 优化过程7(PASS7) 64
 优化过程8(PASS8) 128
 [...]]]></description>
			<content:encoded><![CDATA[<p>Zend Optimizer是由PHP核心引擎“Zend”创建者Zend技术公司所开的免费PHP优化软件。据Zend公司透露使用这个软件某些情况下至少可以提高性能30%以上！这么好的免费大餐当然要用，现在我们来谈谈如何配置这套软件。</p>
<p>Zend Opt的安装是傻瓜化的，安装向导会自动根据你的选择来修改php.ini帮助你启动这个引擎。下面我们来介绍下Zend Opt的配置选项，帮助你最大化自定义合理的配置。下边是我所用的配置文件，看不懂也不要着急，看完本文你就会完全明白。</p>
<p>现在我们来介绍下上边这个配置文件的含义：</p>
<pre><code>[Zend]
zend_optimizer.optimization_level=1023    // 优化程度，这里定义启动多少个优化过程
zend_optimizer.encoder_loader=0    // 是否允许处理由 Zend Encoder 加密的 PHP 文件
zend_extension_ts="C:/Program Files/Zend/lib/ZendOptimizer.dll"    // 优化器所在目录</code></pre>
<p>优化过程 zend_optimizer.optimization_level 详细解释</p>
<p>这里最为重点的部分，仔细看！Zend Opt总共有10个优化过程，从理论上说开的越多性能越好。当然，理论和实际永远都存在着差距。优化过程开启的越多对性能消耗也相对也越大，Zend Opt的10个优化过程并不相同也就是说效果不是平均的。Zend公司定义的最高值(High模式)为15，这里15指的是开启1-4号优化过程。当然，很多朋友并不满足于此，毕竟最高也只开启4个优化过程连总数的一半都没有。各个优化过程的对应的数字代码（值）如下：</p>
<p> 不使用      0  &#038;lt= 如果这样不如不装，还能节约点内存说！<br />
 优化过程1(PASS1) 1<br />
 优化过程2(PASS2) 2<br />
 优化过程3(PASS3) 4<br />
 优化过程4(PASS4) 8<br />
 优化过程5(PASS5) 16<br />
 优化过程6(PASS6) 32<br />
 优化过程7(PASS7) 64<br />
 优化过程8(PASS8) 128<br />
 优化过程9(PASS9) 256<br />
 优化过程10(PASS10) 512</p>
<p>以何种方式开启优化过程是通过这些数字代码（值）相加所得的和作为此参数的参数值来控制的。如我的配置文件中 zend_optimizer.optimization_level = 1023 ，这里的1023是优化过程1到优化过程10全部数字代码（值）相加得到的和，表示开启全部10个优化过程。刚才所提到的Zend公司定义的High模式值为15，15表示同时开启优化过程1-4。</p>
<p>加密代码支持 zend_optimizer.encoder_loader 详细解释</p>
<p>对于这个参数，我想如果没有看过Zend Opt FAQ文档的朋友大多数并不知道。这个参数用来告诉Zend Opt是否去支持被Zend Encoder加密过的代码。默认情况下Zend Opt将支持加密过的代码。如果不使用被加密过的代码我推荐你关闭此选项。这个功能牵扯到解包反码的过程，会导致系统负荷的加重。我的朋友已经开发完毕相应的反编译工具，预计春节之后推出。</p>
<p>这个参数的值只有两个 0 关闭， 1 开启。默认为1，推荐设置为0。</p>
<p>模块定位 zend_extension_ts 无需解释</p>
<p>这是最简单的地方，参数就是Zend Opt模块在硬盘上的安装路径。</p>
]]></content:encoded>
			<wfw:commentRss>http://hpyer.cn/guide-for-config-zend-optimizer.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery 新手入门指南</title>
		<link>http://hpyer.cn/jquery-getting-started.html</link>
		<comments>http://hpyer.cn/jquery-getting-started.html#comments</comments>
		<pubDate>Mon, 22 Sep 2008 13:32:27 +0000</pubDate>
		<dc:creator>Hpyer</dc:creator>
				<category><![CDATA[网文网摘]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[指南]]></category>

		<guid isPermaLink="false">http://www.hpyer.cn/?p=213</guid>
		<description><![CDATA[<img src="http://static.jquery.com/files/rocker/images/logo_jquery_215x53.gif" alt="jQuery" style="float:left; background-color:#000; padding:3px;" />　　这个指南是一个对 jQuery 库的说明，要求读者了解 HTML(DOM) 和 CSS 的一些常识。它包括了一个简单的 Hello World 的例子，选择器和事件基础，AJAX、FX 的用法，以及如何制作 jQuery 的插件。 这个指南包括了很多代码，你可以 copy 它们，并试着修改它们，看看产生的效果...]]></description>
			<content:encoded><![CDATA[<p>英文版：<a href="http://jquery.bassistance.de/jquery-getting-started.html" target="_blank">http://jquery.bassistance.de/jquery-getting-started.html</a> ，感谢 Jörn Zaefferer<br />
中文版：<a href="http://www.k99k.com/jQuery_getting_started.html" target="_blank">http://www.k99k.com/jQuery_getting_started.html</a>，感谢 Keel</p>
<p> </p>
<div>
<h2>jQuery入门指南教程</h2>
<p>这个指南是一个对jQuery库的说明，要求读者了解HTML(DOM)和CSS的一些常识。它包括了一个简单的Hello World的例子，选择器和事件基础，AJAX、FX的用法，以及如何制作jQuery的插件。 这个指南包括了很多代码，你可以copy它们，并试着修改它们，看看产生的效果。</p>
<h2>内容提要</h2>
<ol>
<li><a href="http://www.k99k.com/jQuery_getting_started.html#setup">安装</a></li>
<li><a href="http://www.k99k.com/jQuery_getting_started.html#hello">Hello jQuery</a></li>
<li><a href="http://www.k99k.com/jQuery_getting_started.html#find">Find me:使用选择器和事件</a></li>
<li><a href="http://www.k99k.com/jQuery_getting_started.html#rate">Rate me:使用AJAX</a></li>
<li><a href="http://www.k99k.com/jQuery_getting_started.html#">Animate me(让我生动起来):使用FX</a></li>
<li><a href="http://www.k99k.com/jQuery_getting_started.html#sort">Sort me(将我有序化):使用tablesorter插件(表格排序)</a></li>
<li><a href="http://www.k99k.com/jQuery_getting_started.html#plug">Plug me:制作您自己的插件</a></li>
<li><a href="http://www.k99k.com/jQuery_getting_started.html#next">Next steps(下一步)</a></li>
</ol>
</div>
<div>
<h2 id="setup">安装</h2>
<p>一开始,我们需要一个jQuery的库,最新的下载可以到<a href="http://jquery.com/src/">这里</a>找到。这个指南提供一个基本包含实例的包供下载.</p>
<p>下载：<a class="download" href="http://www.k99k.com/jquery-starterkit.zip">jQuery Starterkit</a></p>
<p class="log">(译者Keel注:一定要下载这个包，光看文章不实践肯定是不行的。)</p>
<p class="instruction">下载后解压缩，然后用你最喜欢的文本编辑器打开starterkit.html和custom.js这两个文件。<span class="log">(译者Keel注:这两个就是例子文件,所有的例子都用这两个例子作出,custom.js写jQuery代码,starterkit.html观察效果.建议用editPlus打开)</span></p>
<p>现在,我们就已经做好了一切准备来进行这个著名的&#8221;Hello world&#8221;例子.</p>
<h4>本章的相关链接:</h4>
<ul>
<li><a href="http://www.k99k.com/jquery-starterkit.zip">Starterkit</a></li>
<li><a href="http://jquery.com/src/">jQuery Downloads</a></li>
</ul>
</div>
<div>
<h2 id="hello">Hello jQuery</h2>
<p>在做所有事情之前,我们要让jQuery读取和处理文档的DOM,必须尽可能快地在DOM载入后开始执行事件,所以,我们用一个ready事件作为处理HTML文档的开始.看看我们打开的custom.js这个文件,里面已经准备好了:</p>
<pre><code>$(document).ready(function() {
	// do stuff when DOM is ready
});</code></pre>
<p>放一个简单的alert事件在需要等DOM完成载入,所以我们把任务稍稍变复杂一点:在点击任何一个链接时显示一个alert.</p>
<pre><code>$(document).ready(function() {
	$("a").click(function() {
		alert("Hello world!");
	});
});</code></pre>
<p>这样在你点击页面的一个链接时都会触发这个&#8221;Hello world&#8221;的提示。</p>
<p class="log">(译者Keel注:请照此代码修改custom.js并保存,然后用浏览器打开starterkit.html观察效果。)</p>
<p>让我们看一下这些修改是什么含义。$(&#8220;a&#8221;) 是一个jQuery选择器(selector),在这里，它选择所有的a标签<span class="log">（译者Keel注：即&lt;a&gt;&lt;/a&gt;）</span>，$号是 jQuery “类”(jQuery &#8220;class&#8221;)的一个别称，因此$()构造了一个新的jQuery 对象(jQuery object)。函数 click() 是这个jQuery对象的一个方法，它绑定了一个单击事件到所有选中的标签(这里是所有的a标签),并在事件触发时执行了它所提供的alert方法.</p>
<p>这里有一个拟行相似功能的代码:</p>
<pre>&lt;a href="#" onclick="alert('Hello world')"&gt;Link&lt;/a&gt;</pre>
<p>不同之处很明显,用jQuery不需要在每个a标签上写onclick事件,所以我们拥有了一个整洁的结构文档(HTML)和一个行为文档(JS),达到了将结构与行为分开的目的,就像我们使用CSS追求的一样.</p>
<p>下面我们会更多地了解到选择器与事件.</p>
<h4>本章的相关链接:</h4>
<ul>
<li><a href="http://jquery.com/docs/Base/">jQuery Base</a></li>
<li><a href="http://jquery.com/docs/Base/Expression/">jQuery Expressions</a></li>
<li><a href="http://jquery.com/docs/Base/Events/">jQuery Basic Events</a></li>
</ul>
</div>
<div>
<h2 id="find">Find me:使用选择器和事件</h2>
<p>jQuery提供两种方式来选择html的elements，第一种是用CSS和Xpath选择器联合起来形成一个字符串来传送到jQuery的构造器（如：$(&#8220;div &gt; ul a&#8221;)）；第二种是用jQuery对象的几个methods(方法)。这两种方式还可以联合起来混合使用。</p>
<p>为了测试一下这些选择器，我们来试着在我们starterkit.html中选择并修改第一个ordered list.</p>
<p>一开始，我们需要选择这个list本身，这个list有一个ID叫“orderedlist”，通常的javascript写法是document.getElementById(&#8220;orderedlist&#8221;).在jQuery中，我们这样做：</p>
<pre><code>$(document).ready(function() {
	$("#orderedlist").addClass("red");
});</code></pre>
<p>这里将starterkit中的一个CSS样式red附加到了orderedlist上<span class="log">(译者Keel注：参考测试包中的css目录下的core.css，其中定义了red样式)</span>。因此，在你刷新了starterkit.html后，你将会看到第一个有序列表(ordered list )背景色变成了红色，而第二个有序列表没有变化.</p>
<p>现在，让我们添加一些新的样式到list的子节点.</p>
<pre><code>$(document).ready(function() {
	$("#orderedlist &gt; li").addClass("blue");
});</code></pre>
<p>这样，所有orderedlist中的li都附加了样式&#8221;blue&#8221;。</p>
<p>现在我们再做个复杂一点的，当把鼠标放在li对象上面和移开时进行样式切换，但只在list的最后一个element上生效。</p>
<pre><code>$(document).ready(function() {
	$("#orderedlist li:last").hover(function() {
		$(this).addClass("green");
	}, function() {
		$(this).removeClass("green");
	});
});</code></pre>
<p>还有大量的类似的<a class="doc" title="Documentation for CSS selectors" href="http://jquery.com/docs/Base/Expression/CSS/">CSS</a>和<a class="doc" title="Documentation for XPath selectors" href="http://jquery.com/docs/Base/Expression/XPath/">XPath</a>例子，更多的例子和列表可以在<a class="doc" title="Documentation for base selectors" href="http://jquery.com/docs/Base/Expression/">这里</a>找到。<span class="log">（译者Keel注：入门看此文，修行在个人，要想在入门之后懂更多，所以这段话的几个链接迟早是要必看的！不会又要翻译吧&#8230;^_^!）</span></p>
<p>每一个onXXX事件都有效，如onclick,onchange,onsubmit等，都有jQuery等价表示方法<span class="log">（译者Keel注：jQuery不喜欢onXXX，所以都改成了XXX，去掉了on）</span>。<a class="doc" title="Documentation for advanced events" href="http://jquery.com/docs/EventModule/">其他的一些事件</a>，如ready和hover,也提供了相应的方法。</p>
<p>你可以在<a href="http://visualjquery.com/">Visual jQuery</a>找到全部的事件列表，在Events栏目下.</p>
<p>用这些选择器和事件你已经可以做很多的事情了，但这里有一个更强的好东东！</p>
<pre><code>$(document).ready(function() {
	$("#orderedlist").find("li").each(function(i) {
		$(this).html( $(this).html() + " BAM! " + i );
	});
});</code></pre>
<p>find() 让你在已经选择的element中作条件查找,因此 $(&#8220;#orderedlist).find(&#8220;li&#8221;) 就像 $(&#8220;#orderedlist li&#8221;)一样。each()方法迭代了所有的li，并可以在此基础上作更多的处理。 大部分的方法,如addClass(), 都可以用它们自己的 each() 。在这个例子中, html()用来获取每个li的html文本, 追加一些文字，并将之设置为li的html文本。<span class="log">（译者Keel注：从这个例子可以看到.html()方法是获取对象的html代码，而.html(&#8216;xxx&#8217;)是设置&#8217;xxx&#8217;为对象的html代码）</span></p>
<p>另一个经常碰到的任务是在没有被jQuery覆盖的DOM元素上call一些方法，想像一个在你用AJAX方式成功提交后的reset：</p>
<pre><code>$(document).ready(function() {
	// use this to reset a single form
	$("#reset").click(function() {
		$("#form")[0].reset();
	});
});</code></pre>
<p class="log">（译者Keel注：这里作者将form的id也写成了form，源文件有&lt;form id=&#8221;form&#8221;&gt;，这是非常不好的写法，你可以将这个ID改成form1或者testForm，然后用$(&#8220;#form1&#8243;)或者$(&#8220;#testForm&#8221;)来表示它，再进行测试。）</p>
<p>这个代码选择了所有ID为&#8221;form&#8221;的元素，并在其第一个上call了一个reset()。如果你有一个以上的form，你可以这样做：</p>
<pre><code>$(document).ready(function() {
	// use this to reset several forms at once
	$("#reset").click(function() {
		$("form").each(function() {
			this.reset();
		});
	});
});</code></pre>
<p class="log">（译者Keel注：请注意一定要亲自将这些代码写在custom.js中并在starterkit.html上测试效果才能有所体会！必要时要观察starterkit.html的html代码）</p>
<p>这样你在点击Reset链接后，就选择了文档中所有的form元素，并对它们都执行了一次reset()。</p>
<p>还有一个你可能要面对的问题是不希望某些特定的元素被选择。jQuery 提供了filter() 和not() 方法来解决这个问题。 filter()以过滤表达式来减少不符合的被选择项, not()则用来取消所有符合过滤表达式的被选择项. 考虑一个无序的list，你想要选择所有的没有ul子元素的li元素。</p>
<pre><code>$(document).ready(function() {
	$("li").not("[ul]").css("border", "1px solid black");
});</code></pre>
<p>这个代码选择了所有的li元素，然后去除了没有ul子元素的li元素。刷新浏览器后，所有的li元素都有了一个边框，只有ul子元素的那个li元素例外。</p>
<p class="log">（译者Keel注：请注意体会方便之极的css()方法，并再次提醒请务必实际测试观察效果，比方说换个CSS样式呢？再加一个CSS样式呢？像这样：$(&#8220;li&#8221;).not(&#8220;[ul]&#8220;).css(&#8220;border&#8221;, &#8220;1px solid black&#8221;).css(&#8220;color&#8221;,&#8221;red&#8221;);）</p>
<p>上面代码中的[expression] 语法是从XPath而来，可以在子元素和属性(elements and attributes)上用作过滤器，比如你可能想选择所有的带有name属性的链接:</p>
<pre><code>$(document).ready(function() {
	$("a[@name]").background("#eee");
});</code></pre>
<p>这个代码给所有带有name属性的链接加了一个背景色。<span class="log">（译者Keel注：这个颜色太不明显了，建议写成$(&#8220;a[@name]&#8220;).background(&#8220;red&#8221;);）</span></p>
<p>更常见的情况是以name来选择链接，你可能需要选择一个有特点href属性的链接，这在不同的浏览器下对href的理解可能会不一致，所以我们的部分匹配(&#8220;*=&#8221;)的方式来代替完全匹配(&#8220;=&#8221;)：</p>
<pre><code>$(document).ready(function() {
	$("a[@href*=/content/gallery]").click(function() {
		// do something with all links that point somewhere to /content/gallery
	});
});</code></pre>
<p>到现在为止，选择器都用来选择子元素或者是过滤元素。另外还有一种情况是选择上一个或者下一个元素，比如一个FAQ的页面，答案首先会隐藏，当问题点击时，答案显示出来，jQuery代码如下：</p>
<pre><code>$(document).ready(function() {
	$('#faq').find('dd').hide().end().find('dt').click(function() {
         var answer = $(this).next();
         if (answer.is(':visible')) {
             answer.slideUp();
         } else {
             answer.slideDown();
         }
     });
});</code></pre>
<p>这里我们用了一些链式表达法来减少代码量，而且看上去更直观更容易理解。像&#8217;#faq&#8217; 只选择了一次，利用end()方法，第一次find()方法会结束(undone)，所以我们可以接着在后面继续find(&#8216;dt&#8217;)，而不需要再写$(&#8216;#faq&#8217;).find(&#8216;dt&#8217;)。</p>
<p>在点击事件中的，我们用 $(this).next() 来找到dt下面紧接的一个dd元素，这让我们可以快速地选择在被点击问题下面的答案。</p>
<p class="log">（译者Keel注：这个例子真是太酷了，FAQ中的答案可以收缩！从利用next()的思路到实现这些效果都有很多地方需要我们消化，注意 if (answer.is(&#8216;:visible&#8217;))用法，注意answer.slideUp();不懂的地方赶紧查我在最开始提到的两个必看API文档）</p>
<p>除了选择同级别的元素外，你也可以选择父级的元素。可能你想在用户鼠标移到文章某段的某个链接时，它的父级元素&#8211;也就是文章的这一段突出显示，试试这个：</p>
<pre><code>$(document).ready(function() {
	$("a").hover(function() {
		$(this).parents("p").addClass("highlight");
	}, function() {
		$(this).parents("p").removeClass("highlight");
	});
});</code></pre>
<p>测试效果可以看到，移到文章某段的链接时，它所在的段全用上highlight样式，移走之后又恢复原样。</p>
<p><span class="log">（译者Keel注：highlight是core.css中定义的样式，你也可以改变它，注意这里有第二个function()这是hover方法的特点，请在API文档中查阅hover，上面也有例子说明）</span>在我们继续之前我们先来看看这一步： jQuery会让代码变得更短从而更容易理解和维护，下面是$(document).ready(callback)的缩写法：</p>
<pre><code>$(function() {
	// code to execute when the DOM is ready
});</code></pre>
<p>应用到我们的Hello world例子中，可以这样:</p>
<pre><code>$(function() {
	$("a").click(function() {
		alert("Hello world!");
	});
});</code></pre>
<p>现在，我们手上有了这些基础的知识，我们可以更进一步的探索其它方面的东西，就从AJAX开始！</p>
<h4>本章的相关链接:</h4>
<ul>
<li><a href="http://jquery.com/api/">jQuery API documentation</a></li>
<li><a href="http://visualjquery.com/">Visual jQuery &#8211; A categorized browsable API documentation</a></li>
<li><a href="http://jquery.com/docs/Base/Expression/CSS/">jQuery Expressions: CSS</a></li>
<li><a href="http://jquery.com/docs/Base/Expression/XPath/">jQuery Expressions: XPath</a></li>
<li><a href="http://jquery.com/docs/Base/Expression/Custom/">jQuery Expressions: Custom</a></li>
<li><a href="http://jquery.com/docs/EventModule/">jQuery Special Events</a></li>
<li><a href="http://jquery.com/docs/Base/Traverse/">jQuery DOM Traversing</a></li>
</ul>
</div>
<div>
<h2 id="rate">Rate me:使用AJAX</h2>
<p>在这一部分我们写了一个小小的AJAX应用，它能够rate一些东西<span class="log">（译Keel注：就是对某些东西投票）</span>，就像在youtube.com上面看到的一样。</p>
<p>首先我们需要一些服务器端代码，这个例子中用到了一个PHP文件，读取rating参数然后返回rating总数和平均数。看一下<a href="http://www.k99k.com/rate.phps">rate.php</a>代码.</p>
<p>虽然这些例子也可以不使用AJAX来实现，但显示我们不会那么做，我们用jQuery生成一个DIV容器，ID是&#8221;rating&#8221;.</p>
<pre><code>$(document).ready(function() {
	// generate markup
	var ratingMarkup = ["Please rate: "];
	for(var i=1; i &lt;= 5; i++) {
		ratingMarkup[ratingMarkup.length] = "&lt;a href='#'&gt;" + i + "&lt;/a&gt; ";
	}
	// add markup to container and applier click handlers to anchors
	$("#rating").append( ratingMarkup.join('') ).find("a").click(function(e) {
		e.preventDefault();
		// send requests
		$.post("rate.php", {rating: $(this).html()}, function(xml) {
			// format result
			var result = [
				"Thanks for rating, current average: ",
				$("average", xml).text(),
				", number of votes: ",
				$("count", xml).text()
			];
			// output result
			$("#rating").html(result.join(''));
		} );
	});
});</code></pre>
<p>这段代码生成了5个链接，并将它们追加到id为&#8221;rating&#8221;容器中，当其中一个链接被点击时，该链接标明的分数就会以rating参数形式发送到rate.php，然后，结果将以XML形式会从服务器端传回来，添加到容器中，替代这些链接。</p>
<p>如果你没有一个安装过PHP的webserver，你可以看看这个<a href="http://www.k99k.com/example-rateme.html">在线的例子</a>.</p>
<p>不使用javascript实现的例子可以访问 <a href="http://www.softonic.de/ie/51494">softonic.de</a> 点击 &#8220;Kurz bewerten!&#8221;</p>
<p>更多的AJAX方法可以从<a class="doc" title="Documentation for AJAX methods" href="http://jquery.com/docs/AJAXModule/">这里</a> 找到，或者看看<a href="http://visualjquery.com/">API文档</a> 下面的AJAX filed under AJAX.</p>
<p class="log">（译者Keel注：这个在线实例从国内访问还是比较慢的，点击后要等一会儿才能看到结果，可以考虑对它进行修改，比如加上loading，投票后加上再投票的返回链接等。此外，这个例子中还是有很多需要进一步消化的地方，看不懂的地方请参考API文档。）</p>
<p>一个在使用AJAX载入内容时经常发生的问题是：当载入一个事件句柄到一个HTML文档时，还需要在载入内容上应用这些事件，你不得不在内容加载完成后应用这些事件句柄，为了防止代码重复执行，你可能用到如下一个function:</p>
<pre><code>// lets use the shortcut
$(function() {
	var addClickHandlers = function() {
		$("a.clickMeToLoadContent").click(function() {
			$("#target").load(this.href, addClickHandlers);
		});
	};
	addClickHandlers();
});</code></pre>
<p>现在，addClickHandlers只在DOM载入完成后执行一次，这是在用户每次点击具有clickMeToLoadContent 这个样式的链接并且内容加载完成后.</p>
<p>请注意addClickHandlers函数是作为一个局部变量定义的，而不是全局变量(如：function addClickHandlers() {&#8230;})，这样做是为了防止与其他的全局变量或者函数相冲突.</p>
<p>另一个常见的问题是关于回调(callback)的参数。你可以通过一个额外的参数指定回调的方法，简单的办法是将这个回调方法包含在一个其它的function中:</p>
<pre><code>// get some data
var foobar = ...;
// specify handler, it needs data as a paramter
var handler = function(data) {
  ...
};
// add click handler and pass foobar!
$('a').click( function(event) { handler(foobar); } );

// if you need the context of the original handler, use apply:
$('a').click( function(event) { handler.apply(this, [foobar]); } );</code></pre>
<p>用到简单的AJAX后，我们可以认为已经非常之“web2.0”了，但是到现在为止，我们还缺少一些酷炫的效果。下一节将会谈到这些效果.</p>
<h4>本章的相关链接:</h4>
<ul>
<li><a href="http://jquery.com/docs/AJAXModule/">jQuery AJAX Module</a></li>
<li><a href="http://jquery.com/api/">jQuery API: Contains description and examples for append and all other jQuery methods</a></li>
<li><a href="http://jquery.com/demo/thickbox/">ThickBox: A jQuery plugin that uses jQuery to enhance the famous lightbox</a></li>
</ul>
</div>
<div>
<h2 id="animate">Animate me(让我生动起来):使用FX</h2>
<p>一些动态的效果可以使用 <code>show()</code> 和 <code>hide()</code>来表现:</p>
<pre><code>$(document).ready(function() {
	$("a").toggle(function() {
		$(".stuff").hide('slow');
	}, function() {
		$(".stuff").show('fast');
	});
});</code></pre>
<p>你可以与 <code>animate()</code>联合起来创建一些效果,如一个带渐显的滑动效果:</p>
<pre><code>$(document).ready(function() {
	$("a").toggle(function() {
		$(".stuff").animate({
			height: 'hide',
			opacity: 'hide'
		}, 'slow');
	}, function() {
		$(".stuff").animate({
			height: 'show',
			opacity: 'show'
		}, 'slow');
	});
});</code></pre>
<p>很多不错的效果可以访问<a href="http://interface.eyecon.ro/">interface plugin collection</a>. 这个站点提供了很多demos和文档</p>
<p>这些效果插件是位于jQuery插件列表的前面的，当然也有很多其他的插件，比如我们下一章讲到的表格排序插件。</p>
<h4>本章的相关链接:</h4>
<ul>
<li><a href="http://jquery.com/docs/FxModule/">jQuery FX Module</a></li>
<li><a href="http://interface.eyecon.ro/">Interface plugin</a></li>
</ul>
</div>
<div>
<h2 id="sort">Sort me(将我有序化):使用tablesorter插件(表格排序)</h2>
<p>这个表格排序插件能让我们在客户端按某一列进行排序，引入jQuery和这个插件的js文件，然后告诉插件你想要哪个表格拥有排序功能。</p>
<p>要测试这个例子，先在starterkit.html中加上像下面这一行的代码：</p>
<pre><code>&lt;script src="lib/jquery.tablesorter.js" type="text/javascript"&gt;&lt;/script&gt;</code></pre>
<p>然后可以这样调用不着:</p>
<pre><code>$(document).ready(function() {
	$("#large").tableSorter();
});</code></pre>
<p>现在点击表格的第一行head区域，你可以看到排序的效果，再次点击会按倒过来的顺序进行排列。</p>
<p>这个表格还可以加一些突出显示的效果，我们可以做这样一个隔行背景色（斑马线）效果:</p>
<pre><code>$(document).ready(function() {
	$("#large").tableSorter({
		stripingRowClass: ['odd','even'],	// Class names for striping supplyed as a array.
		stripRowsOnStartUp: true		// Strip rows on tableSorter init.
	});
});</code></pre>
<p>关于这个插件的更多例子和文档可以在 <a href="http://motherrussia.polyester.se/jquery-plugins/tablesorter/">tablesorter首页</a>找到.</p>
<p>几乎所有的特件都是这样用的:先include插件的js文件,然后在某些元素上使用插件定义的方法,当然也有一些参数选项是可以配置的</p>
<p>经常更新的插件列表可以从jQuery官方站 <a title="Plugins for jQuery" href="http://jquery.com/plugins/">on the jQuery site</a>找到.</p>
<p>当你更经常地使用jQuery时,你会发现将你自己的代码打包成插件是很有用处的,它能方便地让你的公司或者其他人进行重用.下一章我们将谈到如何构建一个自己的插件.</p>
<h4>本章的相关链接:</h4>
<ul>
<li><a href="http://jquery.com/plugins/">Plugins for jQuery</a></li>
<li><a href="http://motherrussia.polyester.se/jquery-plugins/tablesorter/">Tablesorter Plugin</a></li>
</ul>
</div>
<div>
<h2 id="plug">Plug me:制作自己的插件</h2>
<p>写一个自己的jQuery插件是非常容易的,如果你按照下面的原则来做,可以让其他人也容易地结合使用你的插件.</p>
<ol>
<li>为你的插件取一个名字,在这个例子里面我们叫它&#8221;foobar&#8221;.</li>
<li>创建一个像这样的文件:jquery.[yourpluginname].js,比如我们创建一个jquery.foobar.js</li>
<li>创建一个或更多的插件方法,使用继承jQuery对象的方式,如:
<pre><code>jQuery.fn.foobar = function() {
	// do something
};</code></pre>
</li>
<li>可选的:创建一个用于帮助说明的函数,如:
<pre><code>jQuery.fooBar = {
	height: 5,
	calculateBar = function() { ... },
	checkDependencies = function() { ... }
};</code></pre>
<p>你现在可以在你的插件中使用这些帮助函数了:</p>
<pre><code>jQuery.fn.foobar = function() {
	// do something
	jQuery.foobar.checkDependencies(value);
	// do something else
};</code></pre>
</li>
<li>可选的l:创建一个默认的初始参数配置,这些配置也可以由用户自行设定,如:
<pre><code>jQuery.fn.foobar = function(options) {
	var settings = {
		value: 5,
		name: "pete",
		bar: 655
	};
	if(options) {
		jQuery.extend(settings, options);
	}
};</code></pre>
<p>现在可以无需做任何配置地使用插件了,默认的参数在此时生效:</p>
<pre><code>$("...").foobar();</code></pre>
<p>或者加入这些参数定义:</p>
<pre><code>$("...").foobar({
	value: 123,
	bar: 9
});</code></pre>
</li>
</ol>
<p>如果你release你的插件, 你还应该提供一些例子和文档,大部分的插件都具备这些良好的参考文档.</p>
<p>现在你应该有了写一个插件的基础,让我们试着用这些知识写一个自己的插件.</p>
<p>很多人试着控制所有的radio或者checkbox是否被选中,比如:</p>
<pre><code>$("input[@type='checkbox']").each(function() {
	this.checked = true;
	// or, to uncheck
	this.checked = false;
	// or, to toggle
	this.checked = !this.checked;
});</code></pre>
<p>无论何时候，当你的代码出现each时，你应该重写上面的代码来构造一个插件,很直接地:</p>
<pre><code>$.fn.check = function() {
	return this.each(function() {
		this.checked = true;
	});
};</code></pre>
<p>这个插件现在可以这样用:</p>
<pre><code>$("input[@type='checkbox']").check();</code></pre>
<p>现在你应该还可以写出uncheck()和toggleCheck()了.但是先停一下,让我们的插件接收一些参数.</p>
<pre><code>$.fn.check = function(mode) {
	var mode = mode || 'on'; // if mode is undefined, use 'on' as default
	return this.each(function() {
		switch(mode) {
		case 'on':
			this.checked = true;
			break;
		case 'off':
			this.checked = false;
			break;
		case 'toggle':
			this.checked = !this.checked;
			break;
		}
	});
};</code></pre>
<p>这里我们设置了默认的参数,所以将&#8221;on&#8221;参数省略也是可以的,当然也可以加上&#8221;on&#8221;,&#8221;off&#8221;, 或 &#8220;toggle&#8221;,如:</p>
<pre><code>$("input[@type='checkbox']").check();
$("input[@type='checkbox']").check('on');
$("input[@type='checkbox']").check('off');
$("input[@type='checkbox']").check('toggle');</code></pre>
<p>如果有多于一个的参数设置会稍稍有点复杂,在使用时如果只想设置第二个参数,则要在第一个参数位置写入null.</p>
<p>从上一章的tablesorter插件用法我们可以看到,既可以省略所有参数来使用或者通过一个 key/value 对来重新设置每个参数.</p>
<p>作为一个练习,你可以试着将 <a href="http://www.k99k.com/jQuery_getting_started.html#rate">第四章</a> 的功能重写为一个插件.这个插件的骨架应该是像这样的:</p>
<pre><code>$.fn.rateMe = function(options) {
	var container = this; // instead of selecting a static container with $("#rating"), we now use the jQuery context

	var settings = {
		url: "rate.php"
		// put more defaults here
		// remember to put a comma (",") after each pair, but not after the last one!
	};

	if(options) { // check if options are present before extending the settings
		$.extend(settings, options);
	}

	// ...
	// rest of the code
	// ...

	return this; // if possible, return "this" to not break the chain
});</code></pre>
</div>
<div>
<h2 id="next">Next steps(下一步)</h2>
<p>如果你想做更好的javascript开发,建议你使用一个叫 <a href="http://www.joehewitt.com/software/firebug/">FireBug</a>的firefox插件. 它提供了断点调试(比alert强多了)、观察DOM变化等很多漂亮的功能</p>
<p>如果你还有未解决的问题，或者新的想法与建议，你可以使用jQuery的邮件列表 <a href="http://jquery.com/discuss">jQuery mailing list</a>.</p>
<p>关于这个指南的任何事情，你可以写<a href="mailto:enchos [at] gmx [dot] net">mail</a>给作者或者发表评论在他的日志：<a href="http://bassistance.de/index.php/2006/09/12/jquery-getting-started-guide/">blog</a>.</p>
<p class="log">关于这个指南的翻译任何事情，你可以写<a href="mailto:keel.sike[at] gmail.com">mail</a>给我或者发表评论在我的日志：<a href="http://keelsike.blogspot.com/">blog</a>.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://hpyer.cn/jquery-getting-started.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>汽车驾驶九选六指南</title>
		<link>http://hpyer.cn/the-focus-of-driving-skills.html</link>
		<comments>http://hpyer.cn/the-focus-of-driving-skills.html#comments</comments>
		<pubDate>Fri, 02 May 2008 15:24:48 +0000</pubDate>
		<dc:creator>Hpyer</dc:creator>
				<category><![CDATA[曾经的过去]]></category>
		<category><![CDATA[九选六]]></category>
		<category><![CDATA[指南]]></category>
		<category><![CDATA[汽车驾驶]]></category>

		<guid isPermaLink="false">http://www.hpyer.cn/?p=40</guid>
		<description><![CDATA[原来发在 Q-ZONE 里的，琢磨着，这些东西应该挺多人需要，转到这里好咯~
说明：
1、不同教练教的方法不一样，仅供参考！
2、下文所描述到的各种视角，如果没有特殊说明，一般都是坐在驾驶座上的视角。
3、下图为车的示意图，方便下文表述~~

圆饼
全连动，因此比较难，最主要的一点就是方向要打的快~~（考试用车很可能比教练车的方向还要难打~~做好思想准备！）

1、1和2号饼简单，就直直对着走过去（车体、两个饼，在同一直线上），不过饼的左侧要和左侧径空大概30公分的样子。对直了就去看3号饼
2、当看到3号饼到车头左边进来三分之一位置（30公分左右，不知道是不是三分之一了）时，往左打一圈多（右手大概推到十点钟的样子），车头差不多把饼挡住了，就立刻回正，马上看4号饼
3、同样，4号饼到车头右边近来大概三分之一，往右两圈（注意不要打多了！），车头把饼挡住了就回正，然后看5号饼
4、看到5号饼差不多要到前挡风玻璃和左车门交界处的时候，就要往左打两圈了。这里需要注意下，你们女的可能打方向比较慢，这里的两圈很可能就要和前面回正的两圈连在一起打了。然后，同样是车头把饼挡住了回正，看6号饼
5、这里我记得不是很清楚了，反正是前面回正后，要再往前开一点（大概半秒钟，估计也是饼到车头右边三分之一的位置），然后往右两圈（也可能不到两圈，具体要看当时开的情况了），车头挡住饼了，立刻回正。
单边桥
半连动，速度慢点没关系~~这个考试的时候就考两根的，一左一右。不是左轮先上，就是右轮先上。看到时候你们抽签抽到是哪个车道了（同时有好几个车道在考试的，考的东西的先后顺序不一样~~）。然后么，一般教练都会告诉你一个参考点，就可以根据这参考点去开。考试的场地也肯定有这样或者那样的参考点的，去练的时候，就把它找到，然后考试根据这个参考点开就没问题的~~
左轮先上：
左侧径贴着桥面左侧（车头那里左侧径有点往中间靠的，所以车头那里是在桥面左侧里面大概3公分的样子）。如果还吃不准位置的话，可以先按左侧径（车头那里）贴着桥面左侧上去，整辆车上了以后，可以停下来看下车轮和桥的位置，下次开的时候适当调整一下。然后后轮快要下坡的时候（大概是在前轮下坡后1秒钟的样子），往右打一圈。然后车头左角贴到第二根桥左侧，往左打两圈，这个时候右轮应该开始上坡了。然后车头中间到桥面中间的时候就往右回一圈，等后轮上来，然后稍做一点点调整就可以了（觉得直了的话，不调整也没关系）。
右轮先上：
车头中间贴着桥面左侧。吃不准位置的话，和上面同样的方法试几次就记住了。后论快要下坡的时候，往左打一圈多（右手大概推到十一二点的位置）。车头一半快碰到第二根桥右边的时候（好象是这样的，记不大清楚了），往右回两圈，前轮开始上坡。左侧径快碰到桥面左侧的时候，往左回一圈，就好了，要不要调整，自己感觉下了。
PS：桥上的调整动作不要太大，不然一下子就掉下来的。
侧方位停车
半连动。要注意转向灯、喇叭的使用。有点类似倒库移库的，还算比较简单的吧。起先停到库前面的时候，要尽量贴着库开过去。停车打右灯。倒车左灯。停到库里后，要开出来的时候，左灯加喇叭~~
S弯
全连动。也算简单的。往左边弯的时候，车头左角贴着车道右边转~~往右边弯的时候么，反一下，车头右边贴着车道左边转，这样就OK啦~~
直角转弯
半连动。这个简单了，没什么好说的~~~
限宽门
挂两档，20码以上穿过三个门~~这个算简单的吧，关键是加油门要快点，把车速提到20码以上，然后就可以送掉油门。人坐的位置差不多到第二个门的时候，往第三个门的方向将方向盘转动大概四分之一圈，要么多些~~只要车体对着第三个门去了，就可以了
上坡停车
半连动。这个比较简单了，一般教练会在车头右角的位置垂直放一根细长的东西（假设是笔），做为参考~~车子往前开，当你觉得笔和路边上那个木棍（也可能是别的什么杆子）在同一平行线（也就是和两边的墙壁垂直）上的时候，就可以停车了。另外需要注意的就是车子不要太靠近路边，不然也不算过的~~（我考那天，同车的另外一个人就是这样从补考了一次~~）
100米加减档
这个丽水不考的，而且教练说我们也肯定是开不起来的~~PS：确实很难~~
还有什么东西不大清楚了，好象就是路考了吧~~开三公里的距离，中途会让你做减档停车（从五档减到一档~~）和抢档两件事~~开到终点了么，要掉头停车。
起步：
1、在车外说报告，考官示意上车，再上车
2、上车后，调整座位、后视镜等，再系保险带
3、踩离合器、挂空档，发动汽车。松离合器，检查仪表、周边有无车辆、行人等情况。确认可以起步时，跟考官说，“报告考官，发动机、仪表工作正常，能否起步”（这句话怎么说，你们教练应该会告诉你们的），考官示意可以起步。
4、打左转向灯、喇叭，离合器到半连动，松手刹，车子开始往前动了，就可以慢慢踩油门了~~~（我一般都是挂了二档后，就把转向灯关掉的~~）
减档停车：
考官会发命令的，他说了你再做，补充一下，如果你车速不够，考官是不会喊的~~
1、考官发出命令，开右转向灯。车体随着减档的过程渐渐向路边靠过去。
2、踩下离合器，挂到四档，离合器抬到半连动的位置，然后立即松开
3、踩下离合器，挂到三档，离合器抬到半连动的位置，这时候就不能立刻松开了，要半连动的位置，停一会再松开
4、再挂二档、一档也是一样，半连动的位置要停一下。档位越低，停的时间要越长一些
5、挂到一档后，脚是要从离合器上拿开的，然后再踩下离合器、刹车，到停车~~
6、停好后，拉手刹、挂空档、关转向灯、松离合器、松刹车。
7、这时候，考官是不说让你再起步的，自己再按起步第四步的动作开去就可以了。
抢档：
和减档一样，车速不够的话，也不喊的~~
考官发出命令。踩下离合器，挂到四档，然后迅速抬到离合器的最高位置，再迅速踩下（最高位置不是半连动了啊，就类似像脚刚好放在离合器上那种感觉）。挂三档，再迅速抬到离合器的最高位置再踩下（这里会很明显发现车子类似停了一下感觉，抢档要的就是这个效果，以把车速降低）。这个时候呢，就不用再往下减了，按前面踩离合器的方式将档位挂到四档、五档，就算完成了。
停车动作
车停稳后，拉手刹，挂一档（就算原来在一档了，也要拉出来再挂回去），熄火，关转向灯，松离合器，松刹车，报告考试完毕（这步可能不用说了），然后考官会对你进行点评然后打分（如果有什么“话”要说，就这个时候了！分数打下去就没机会了噢~~），然后松保险带下车，注意关门的时候不要随手一甩啊！如果让考官觉得你态度不好，你补考几次都是不合格的！！
路考另外一个方式么就是夜考了，大体和白天开是一样的。就是不能使用喇叭、要会使用远、近光灯。具体什么样的时候用什么样的灯光，那我就不细说了，说下需要注意的地方。
1、车速低于30码（没三档的时候），不能用远光。
2、路口、转弯要变光
3、超车前要变光示意前车。一般晚上车子少，不怎么会要超车的，当然你们那边考试的那段路是什么情况我就不大清楚了
4、减档停车的时候，减到三档时，如果开的是远光灯，要改成近光灯。
5、开到终点停车后，要开示阔灯
另外说下路考时，需要注意的一些地方（好象有些都是条例里的 -_-! ）
1、减速线不能加油，如果车速慢可以适当加一些
2、路口、转弯要减速
3、不能压中心线，除了超车
4、路口、公交车站、消防栓等地方不能停车
好象也差不多就这些了，有什么不明白再问我吧~~
]]></description>
			<content:encoded><![CDATA[<p>原来发在 Q-ZONE 里的，琢磨着，这些东西应该挺多人需要，转到这里好咯~</p>
<p>说明：</p>
<p>1、不同教练教的方法不一样，仅供参考！<br />
2、下文所描述到的各种视角，如果没有特殊说明，一般都是坐在驾驶座上的视角。<br />
3、下图为车的示意图，方便下文表述~~<br />
<a href='http://www.hpyer.cn/wp-content/uploads/2008/05/9e980896_1.jpg'><img src="http://www.hpyer.cn/wp-content/uploads/2008/05/9e980896_1-300x154.jpg" alt="" title="车体示意图" width="300" height="154" class="alignnone size-medium wp-image-41" /></a></p>
<p>圆饼<br />
全连动，因此比较难，最主要的一点就是方向要打的快~~（考试用车很可能比教练车的方向还要难打~~做好思想准备！）<br />
<img src="http://www.hpyer.cn/wp-content/uploads/2008/05/9e980896_2.jpg" alt="" title="圆饼位置示意图" width="121" height="207" class="alignnone size-medium wp-image-42" /></p>
<p>1、1和2号饼简单，就直直对着走过去（车体、两个饼，在同一直线上），不过饼的左侧要和左侧径空大概30公分的样子。对直了就去看3号饼<br />
2、当看到3号饼到车头左边进来三分之一位置（30公分左右，不知道是不是三分之一了）时，往左打一圈多（右手大概推到十点钟的样子），车头差不多把饼挡住了，就立刻回正，马上看4号饼<br />
3、同样，4号饼到车头右边近来大概三分之一，往右两圈（注意不要打多了！），车头把饼挡住了就回正，然后看5号饼<br />
4、看到5号饼差不多要到前挡风玻璃和左车门交界处的时候，就要往左打两圈了。这里需要注意下，你们女的可能打方向比较慢，这里的两圈很可能就要和前面回正的两圈连在一起打了。然后，同样是车头把饼挡住了回正，看6号饼<br />
5、这里我记得不是很清楚了，反正是前面回正后，要再往前开一点（大概半秒钟，估计也是饼到车头右边三分之一的位置），然后往右两圈（也可能不到两圈，具体要看当时开的情况了），车头挡住饼了，立刻回正。</p>
<p>单边桥<br />
半连动，速度慢点没关系~~这个考试的时候就考两根的，一左一右。不是左轮先上，就是右轮先上。看到时候你们抽签抽到是哪个车道了（同时有好几个车道在考试的，考的东西的先后顺序不一样~~）。然后么，一般教练都会告诉你一个参考点，就可以根据这参考点去开。考试的场地也肯定有这样或者那样的参考点的，去练的时候，就把它找到，然后考试根据这个参考点开就没问题的~~<br />
左轮先上：<br />
左侧径贴着桥面左侧（车头那里左侧径有点往中间靠的，所以车头那里是在桥面左侧里面大概3公分的样子）。如果还吃不准位置的话，可以先按左侧径（车头那里）贴着桥面左侧上去，整辆车上了以后，可以停下来看下车轮和桥的位置，下次开的时候适当调整一下。然后后轮快要下坡的时候（大概是在前轮下坡后1秒钟的样子），往右打一圈。然后车头左角贴到第二根桥左侧，往左打两圈，这个时候右轮应该开始上坡了。然后车头中间到桥面中间的时候就往右回一圈，等后轮上来，然后稍做一点点调整就可以了（觉得直了的话，不调整也没关系）。<br />
右轮先上：<br />
车头中间贴着桥面左侧。吃不准位置的话，和上面同样的方法试几次就记住了。后论快要下坡的时候，往左打一圈多（右手大概推到十一二点的位置）。车头一半快碰到第二根桥右边的时候（好象是这样的，记不大清楚了），往右回两圈，前轮开始上坡。左侧径快碰到桥面左侧的时候，往左回一圈，就好了，要不要调整，自己感觉下了。<br />
PS：桥上的调整动作不要太大，不然一下子就掉下来的。</p>
<p>侧方位停车<br />
半连动。要注意转向灯、喇叭的使用。有点类似倒库移库的，还算比较简单的吧。起先停到库前面的时候，要尽量贴着库开过去。停车打右灯。倒车左灯。停到库里后，要开出来的时候，左灯加喇叭~~</p>
<p>S弯<br />
全连动。也算简单的。往左边弯的时候，车头左角贴着车道右边转~~往右边弯的时候么，反一下，车头右边贴着车道左边转，这样就OK啦~~</p>
<p>直角转弯<br />
半连动。这个简单了，没什么好说的~~~</p>
<p>限宽门<br />
挂两档，20码以上穿过三个门~~这个算简单的吧，关键是加油门要快点，把车速提到20码以上，然后就可以送掉油门。人坐的位置差不多到第二个门的时候，往第三个门的方向将方向盘转动大概四分之一圈，要么多些~~只要车体对着第三个门去了，就可以了</p>
<p>上坡停车<br />
半连动。这个比较简单了，一般教练会在车头右角的位置垂直放一根细长的东西（假设是笔），做为参考~~车子往前开，当你觉得笔和路边上那个木棍（也可能是别的什么杆子）在同一平行线（也就是和两边的墙壁垂直）上的时候，就可以停车了。另外需要注意的就是车子不要太靠近路边，不然也不算过的~~（我考那天，同车的另外一个人就是这样从补考了一次~~）</p>
<p>100米加减档<br />
这个丽水不考的，而且教练说我们也肯定是开不起来的~~PS：确实很难~~</p>
<p>还有什么东西不大清楚了，好象就是路考了吧~~开三公里的距离，中途会让你做减档停车（从五档减到一档~~）和抢档两件事~~开到终点了么，要掉头停车。</p>
<p>起步：<br />
1、在车外说报告，考官示意上车，再上车<br />
2、上车后，调整座位、后视镜等，再系保险带<br />
3、踩离合器、挂空档，发动汽车。松离合器，检查仪表、周边有无车辆、行人等情况。确认可以起步时，跟考官说，“报告考官，发动机、仪表工作正常，能否起步”（这句话怎么说，你们教练应该会告诉你们的），考官示意可以起步。<br />
4、打左转向灯、喇叭，离合器到半连动，松手刹，车子开始往前动了，就可以慢慢踩油门了~~~（我一般都是挂了二档后，就把转向灯关掉的~~）</p>
<p>减档停车：<br />
考官会发命令的，他说了你再做，补充一下，如果你车速不够，考官是不会喊的~~<br />
1、考官发出命令，开右转向灯。车体随着减档的过程渐渐向路边靠过去。<br />
2、踩下离合器，挂到四档，离合器抬到半连动的位置，然后立即松开<br />
3、踩下离合器，挂到三档，离合器抬到半连动的位置，这时候就不能立刻松开了，要半连动的位置，停一会再松开<br />
4、再挂二档、一档也是一样，半连动的位置要停一下。档位越低，停的时间要越长一些<br />
5、挂到一档后，脚是要从离合器上拿开的，然后再踩下离合器、刹车，到停车~~<br />
6、停好后，拉手刹、挂空档、关转向灯、松离合器、松刹车。<br />
7、这时候，考官是不说让你再起步的，自己再按起步第四步的动作开去就可以了。</p>
<p>抢档：<br />
和减档一样，车速不够的话，也不喊的~~<br />
考官发出命令。踩下离合器，挂到四档，然后迅速抬到离合器的最高位置，再迅速踩下（最高位置不是半连动了啊，就类似像脚刚好放在离合器上那种感觉）。挂三档，再迅速抬到离合器的最高位置再踩下（这里会很明显发现车子类似停了一下感觉，抢档要的就是这个效果，以把车速降低）。这个时候呢，就不用再往下减了，按前面踩离合器的方式将档位挂到四档、五档，就算完成了。</p>
<p>停车动作<br />
车停稳后，拉手刹，挂一档（就算原来在一档了，也要拉出来再挂回去），熄火，关转向灯，松离合器，松刹车，报告考试完毕（这步可能不用说了），然后考官会对你进行点评然后打分（如果有什么“话”要说，就这个时候了！分数打下去就没机会了噢~~），然后松保险带下车，注意关门的时候不要随手一甩啊！如果让考官觉得你态度不好，你补考几次都是不合格的！！</p>
<p>路考另外一个方式么就是夜考了，大体和白天开是一样的。就是不能使用喇叭、要会使用远、近光灯。具体什么样的时候用什么样的灯光，那我就不细说了，说下需要注意的地方。<br />
1、车速低于30码（没三档的时候），不能用远光。<br />
2、路口、转弯要变光<br />
3、超车前要变光示意前车。一般晚上车子少，不怎么会要超车的，当然你们那边考试的那段路是什么情况我就不大清楚了<br />
4、减档停车的时候，减到三档时，如果开的是远光灯，要改成近光灯。<br />
5、开到终点停车后，要开示阔灯</p>
<p>另外说下路考时，需要注意的一些地方（好象有些都是条例里的 -_-! ）<br />
1、减速线不能加油，如果车速慢可以适当加一些<br />
2、路口、转弯要减速<br />
3、不能压中心线，除了超车<br />
4、路口、公交车站、消防栓等地方不能停车</p>
<p>好象也差不多就这些了，有什么不明白再问我吧~~</p>
]]></content:encoded>
			<wfw:commentRss>http://hpyer.cn/the-focus-of-driving-skills.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
