<?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; ajax</title>
	<atom:link href="http://www.rsywx.net/wordpress/tag/ajax/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.rsywx.net/wordpress</link>
	<description>是的，因为真正的生活是在远方</description>
	<lastBuildDate>Wed, 08 Feb 2012 13:55:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Going for Symfony &#124; 第五天</title>
		<link>http://www.rsywx.net/wordpress/2009/02/18/going-for-symfony-%e7%ac%ac%e4%ba%94%e5%a4%a9/</link>
		<comments>http://www.rsywx.net/wordpress/2009/02/18/going-for-symfony-%e7%ac%ac%e4%ba%94%e5%a4%a9/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 14:32:31 +0000</pubDate>
		<dc:creator>tr</dc:creator>
				<category><![CDATA[编程、软件、技术]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[分页]]></category>

		<guid isPermaLink="false">http://www.rsywx.net/wordpress/2009/02/1533</guid>
		<description><![CDATA[今天忙里偷闲，继续对我的藏书管理程序进行Symfony的改造。界面效果如下： 首先，当然是routying.yml的编辑： book_list: url: /books/search class: sfPropelRoute options: model: BookBook type: object param: module: books action: search 然后是在action.class.php中加入对search动作的处理： public function executeSearch&#40;sfWebRequest $request&#41; &#123; $this-&#62;pager=new sfPropelPager&#40;'BookBook', sfConfig::get&#40;'app_records_on_book_search'&#41;&#41;; $this-&#62;pager-&#62;setPage&#40;$request-&#62;getParameter&#40;'p',1&#41;&#41;; $this-&#62;pager-&#62;init&#40;&#41;; &#125; 这个函数中用到的分页处理是标准的Symfony处理方式。对pager的进一步处理都将在具体的模板中处理&#8211;我个人认为这个不是最好的方法，不过貌似也没有更好的方法了： &#60;?php slot&#40;'title', '任氏有无轩：书籍列表'&#41; ?&#62; &#60;?php include_partial&#40;'books/list', array&#40;'books'=&#62;$pager-&#62;getResults&#40;&#41;&#41;&#41; ?&#62; &#60;?php if&#40;$pager-&#62;haveToPaginate&#40;&#41;&#41;: ?&#62; &#60;div class=&#34;page&#34;&#62; &#60;a href=&#34;&#60;?php echo url_for&#40;'book_list'&#41;?&#62;?p=1&#34;&#62; &#60;img src=&#34;/images/first.png&#34; alt=&#34;First Page&#34; /&#62; &#60;/a&#62; &#60;a href=&#34;&#60;?php [...]]]></description>
			<content:encoded><![CDATA[<p>今天忙里偷闲，继续对我的藏书管理程序进行Symfony的改造。界面效果如下：</p>
<p><a href="http://www.rsywx.net/wordpress/wp-content/uploads/2009/02/book-list.png"><img style="width: 400px; height: 300px;" src="http://www.rsywx.net/wordpress/wp-content/uploads/2009/02/zrtn-001p3cac998e-tn.jpg" alt="" width="400" height="300" /></a></p>
<p><span id="more-1533"></span></p>
<p>首先，当然是routying.yml的编辑：</p>
<pre>   book_list:
     url: /books/search
     class: sfPropelRoute
     options:
       model: BookBook
       type: object
     param:
       module: books
       action: search</pre>
<p>然后是在action.class.php中加入对search动作的处理：</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> executeSearch<span style="color: #009900;">&#40;</span>sfWebRequest <span style="color: #000088;">$request</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">pager</span><span style="color: #339933;">=</span><span style="color: #000000; font-weight: bold;">new</span> sfPropelPager<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'BookBook'</span><span style="color: #339933;">,</span> sfConfig<span style="color: #339933;">::</span><span style="color: #004000;">get</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'app_records_on_book_search'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">pager</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setPage</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$request</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getParameter</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'p'</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">pager</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">init</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span></pre></div></div>

<p>这个函数中用到的分页处理是标准的Symfony处理方式。对pager的进一步处理都将在具体的模板中处理&#8211;我个人认为这个不是最好的方法，不过貌似也没有更好的方法了：</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> slot<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'title'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'任氏有无轩：书籍列表'</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;?php</span> include_partial<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'books/list'</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'books'</span><span style="color: #339933;">=&gt;</span><span style="color: #000088;">$pager</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getResults</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$pager</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">haveToPaginate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
&lt;div class=&quot;page&quot;&gt;
    &lt;a href=&quot;<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> url_for<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'book_list'</span><span style="color: #009900;">&#41;</span><span style="color: #000000; font-weight: bold;">?&gt;</span>?p=1&quot;&gt;
    &lt;img src=&quot;/images/first.png&quot; alt=&quot;First Page&quot; /&gt;
    &lt;/a&gt;
    &lt;a href=&quot;<span style="color: #000000; font-weight: bold;">&lt;?php</span> url_for<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'book_list'</span><span style="color: #009900;">&#41;</span><span style="color: #000000; font-weight: bold;">?&gt;</span>?p=<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$pager</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getPreviousPage</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot;&gt;
    &lt;img src=&quot;/images/previous.png&quot; alt=&quot;Previous Page&quot; /&gt;
    &lt;/a&gt;
    <span style="color: #000000; font-weight: bold;">&lt;?php</span> 
    <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$pager</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getLinks</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$page</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$page</span><span style="color: #339933;">==</span><span style="color: #000088;">$pager</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getPage</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#123;</span>
            <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$page</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #b1b100;">else</span>
        <span style="color: #009900;">&#123;</span>
            <span style="color: #000000; font-weight: bold;">?&gt;</span>
            &lt;a href=&quot;<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> url_for<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'book_list'</span><span style="color: #009900;">&#41;</span><span style="color: #000000; font-weight: bold;">?&gt;</span>?p=<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$page</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot;&gt;<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$page</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/a&gt;
            <span style="color: #000000; font-weight: bold;">&lt;?php</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000000; font-weight: bold;">?&gt;</span>
    &lt;a href=&quot;<span style="color: #000000; font-weight: bold;">&lt;?php</span> url_for<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'book_list'</span><span style="color: #009900;">&#41;</span><span style="color: #000000; font-weight: bold;">?&gt;</span>?p=<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$pager</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getNextPage</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot;&gt;
    &lt;img src=&quot;/images/next.png&quot; alt=&quot;Next Page&quot; /&gt;
    &lt;/a&gt;
    &lt;a href=&quot;<span style="color: #000000; font-weight: bold;">&lt;?php</span> url_for<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'book_list'</span><span style="color: #009900;">&#41;</span><span style="color: #000000; font-weight: bold;">?&gt;</span>?p=<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$pager</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getLastPage</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot;&gt;
    &lt;img src=&quot;/images/last.png&quot; alt=&quot;Last Page&quot; /&gt;
    &lt;/a&gt;
&lt;/div&gt;
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">endif</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>这里的处理无非是将结果集提出来，然后根据目前的页数设置不同的图标的链接。这里我也用到了include_partial来包含另一个模板，在那个模板中当然只是简单的循环显示书籍的信息而已。</p>
<p>有一个小问题，在_list.php中，我首先是对奇偶行进行不同CSS类的设置，同时用jQuery对mouseover/mouseout进行处理：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.list_cs_a&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">mouseover</span><span style="color: #009900;">&#40;</span>
    <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>event<span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        $<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">removeClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;list_cs_a&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        $<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;a_over&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">mouseout</span><span style="color: #009900;">&#40;</span>
    <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>event<span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        $<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">removeClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;a_over&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        $<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;list_cs_a&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>在编写这个函数时，一开始我犯了经验主义的错误，我认为一旦我addClass后，原来的$()选择子将无法进行：因为该DOM元素的CSS类变化了，而我正是根据CSS类来进行选择的呀……但是，事实证明，我这样写是对的。显然，在选择后对象已经生成了，此时改变对象的属性并不能改变对象本身……</p>
<p class="zoundry_raven_tags"><!-- Tag links generated by Zoundry Raven. Do not manually edit. http://www.zoundryraven.com --> <span class="ztags"><span class="ztagspace">Technorati</span> : <a class="ztag" rel="tag" href="http://www.technorati.com/tag/ajax">ajax</a>, <a class="ztag" rel="tag" href="http://www.technorati.com/tag/jquery">jquery</a>, <a class="ztag" rel="tag" href="http://www.technorati.com/tag/symfony">symfony</a>, <a class="ztag" rel="tag" href="http://www.technorati.com/tag/%E5%88%86%E9%A1%B5">分页</a></span><br />
<span class="ztags"><span class="ztagspace">Del.icio.us</span> : <a class="ztag" rel="tag" href="http://del.icio.us/tag/ajax">ajax</a>, <a class="ztag" rel="tag" href="http://del.icio.us/tag/jquery">jquery</a>, <a class="ztag" rel="tag" href="http://del.icio.us/tag/symfony">symfony</a>, <a class="ztag" rel="tag" href="http://del.icio.us/tag/%E5%88%86%E9%A1%B5">分页</a></span><br />
<span class="ztags"><span class="ztagspace">Zooomr</span> : <a class="ztag" rel="tag" href="http://www.zooomr.com/search/photos/?q=ajax">ajax</a>, <a class="ztag" rel="tag" href="http://www.zooomr.com/search/photos/?q=jquery">jquery</a>, <a class="ztag" rel="tag" href="http://www.zooomr.com/search/photos/?q=symfony">symfony</a>, <a class="ztag" rel="tag" href="http://www.zooomr.com/search/photos/?q=%E5%88%86%E9%A1%B5">分页</a></span><br />
<span class="ztags"><span class="ztagspace">Flickr</span> : <a class="ztag" rel="tag" href="http://www.flickr.com/photos/tags/ajax">ajax</a>, <a class="ztag" rel="tag" href="http://www.flickr.com/photos/tags/jquery">jquery</a>, <a class="ztag" rel="tag" href="http://www.flickr.com/photos/tags/symfony">symfony</a>, <a class="ztag" rel="tag" href="http://www.flickr.com/photos/tags/%E5%88%86%E9%A1%B5">分页</a></span></p>
</div>
<div style="float:left;margin:0px 0px 0px 0px;"><a title="Post on Google Buzz" class="google-buzz-button" href="http://www.google.com/buzz/post" data-button-style="normal-count" data-url="http://www.rsywx.net/wordpress/2009/02/18/going-for-symfony-%e7%ac%ac%e4%ba%94%e5%a4%a9/"></a><script type="text/javascript" src="http://www.google.com/buzz/api/button.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.rsywx.net/wordpress/2009/02/18/going-for-symfony-%e7%ac%ac%e4%ba%94%e5%a4%a9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【jQuery】示例4：三层的关联下拉框</title>
		<link>http://www.rsywx.net/wordpress/2008/12/14/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b4%ef%bc%9a%e4%b8%89%e5%b1%82%e7%9a%84%e5%85%b3%e8%81%94%e4%b8%8b%e6%8b%89%e6%a1%86/</link>
		<comments>http://www.rsywx.net/wordpress/2008/12/14/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b4%ef%bc%9a%e4%b8%89%e5%b1%82%e7%9a%84%e5%85%b3%e8%81%94%e4%b8%8b%e6%8b%89%e6%a1%86/#comments</comments>
		<pubDate>Sun, 14 Dec 2008 09:08:44 +0000</pubDate>
		<dc:creator>tr</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[编程、软件、技术]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[demos]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[例子]]></category>

		<guid isPermaLink="false">http://www.rsywx.net/wordpress/?p=1278</guid>
		<description><![CDATA[有了两层关联下拉框的经验，实现三层的关联下拉框确实很容易。 当然，为了被前令狐同学再次BS我的算法BT，我首先改写了clearOptions函数： function clearOptions&#40;selectID&#41; &#123; var sel=document.getElementById&#40;selectID&#41;; var len=sel.length; var i; &#160; for&#40;i=1;i&#60;len;i++&#41; sel.remove&#40;1&#41;; // I keep on removing the 1st item in the select! &#125; 说明一下，我这样编程是有一定的道理的。虽然说，更“好”的代码应该似乎是每次都删除最后一个（类似：remove(sel.length)）。但是，由于每次删除后，sel.length都会发生变化，所以在每次删除最后一个的时候，sel.length都会被重新取值，这个对于jQuery来说开销还是很大的，特别是如果select下的option比较多的时候。所以，我还是选择每次删除第一个的做法。这样，remove(1)中的参数是个常量，只需要取值一次从而大大的缩减了运行时间。 同时我将addOption，fillLevel等多次调用的代码段抽出作为独立的函数。在fillLevel函数中，还特意混合了jQuery和标准javascript。 这样一来，jQuery的ready函数写法就更清晰明了了。同时，为了温故知新，我还加入了在第二个例子中实现的“Loading”提示。目前的问题时，在填充level1的时候，不会出现这个提示，而只有在填充level2和level3的时候才出现这个提示。暂时不管这个小小的问题了。 完整的示范在此处。 代码不再贴出，有兴趣的可以在页面自行下载研究。]]></description>
			<content:encoded><![CDATA[<p>有了两层关联下拉框的经验，实现三层的关联下拉框确实很容易。</p>
<p>当然，为了被前令狐同学再次BS我的算法BT，我首先改写了clearOptions函数：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> clearOptions<span style="color: #009900;">&#40;</span>selectID<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #003366; font-weight: bold;">var</span> sel<span style="color: #339933;">=</span>document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span>selectID<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> len<span style="color: #339933;">=</span>sel.<span style="color: #660066;">length</span><span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> i<span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">=</span><span style="color: #CC0000;">1</span><span style="color: #339933;">;</span>i<span style="color: #339933;">&lt;</span>len<span style="color: #339933;">;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
        sel.<span style="color: #660066;">remove</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// I keep on removing the 1st item in the select!</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>说明一下，我这样编程是有一定的道理的。虽然说，更“好”的代码应该似乎是每次都删除最后一个（类似：remove(sel.length)）。但是，由于每次删除后，sel.length都会发生变化，所以在每次删除最后一个的时候，sel.length都会被重新取值，这个对于jQuery来说开销还是很大的，特别是如果select下的option比较多的时候。所以，我还是选择每次删除第一个的做法。这样，remove(1)中的参数是个常量，只需要取值一次从而大大的缩减了运行时间。</p>
<p>同时我将addOption，fillLevel等多次调用的代码段抽出作为独立的函数。在fillLevel函数中，还特意混合了jQuery和标准javascript。</p>
<p>这样一来，jQuery的ready函数写法就更清晰明了了。同时，为了温故知新，我还加入了在第二个例子中实现的“Loading”提示。目前的问题时，在填充level1的时候，不会出现这个提示，而只有在填充level2和level3的时候才出现这个提示。暂时不管这个小小的问题了。</p>
<p>完整的示范在<a href="http://www.rsywx.net/jquery/demos/test04.html">此处</a>。</p>
<p>代码不再贴出，有兴趣的可以在页面自行下载研究。</p>
<div style="float:left;margin:0px 0px 0px 0px;"><a title="Post on Google Buzz" class="google-buzz-button" href="http://www.google.com/buzz/post" data-button-style="normal-count" data-url="http://www.rsywx.net/wordpress/2008/12/14/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b4%ef%bc%9a%e4%b8%89%e5%b1%82%e7%9a%84%e5%85%b3%e8%81%94%e4%b8%8b%e6%8b%89%e6%a1%86/"></a><script type="text/javascript" src="http://www.google.com/buzz/api/button.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.rsywx.net/wordpress/2008/12/14/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b4%ef%bc%9a%e4%b8%89%e5%b1%82%e7%9a%84%e5%85%b3%e8%81%94%e4%b8%8b%e6%8b%89%e6%a1%86/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>【jQuery】示例3：两层的关联下拉框</title>
		<link>http://www.rsywx.net/wordpress/2008/12/10/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b3%ef%bc%9a%e4%b8%a4%e5%b1%82%e7%9a%84%e5%85%b3%e8%81%94%e4%b8%8b%e6%8b%89%e6%a1%86/</link>
		<comments>http://www.rsywx.net/wordpress/2008/12/10/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b3%ef%bc%9a%e4%b8%a4%e5%b1%82%e7%9a%84%e5%85%b3%e8%81%94%e4%b8%8b%e6%8b%89%e6%a1%86/#comments</comments>
		<pubDate>Wed, 10 Dec 2008 14:17:50 +0000</pubDate>
		<dc:creator>tr</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[编程、软件、技术]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[例子]]></category>

		<guid isPermaLink="false">http://www.rsywx.net/wordpress/?p=1238</guid>
		<description><![CDATA[今天终于完成了jQuery的一个确实有用的示例：两层的关联下拉框（2 Level Cascading Dropdown list）。示例见此处。 开始，我以为很简单。但是经过实战，还是有一些些小的技巧需要注意。 JSON的返回值是一个问题。在这个示例中，由于我并不关注返回值的问题（这个问题将在示例4中进一步研究），所以我只是简单返回一个字符串的数组。 我遇到的第二个问题，是如何给select加option的问题。开始我用如下的代码： var opt=document.createElement&#40;&#34;option&#34;&#41;; opt.value=n; opt.text=i; &#160; $&#40;&#34;select&#34;&#41;.filter&#40;&#34;#level1&#34;&#41;.append&#40;opt&#41;; 这样做，在Fx下是可以了，但是在IE下不行：option加入正常，但是没有文本显示。所以，我采用更标准的JavaScript写法： var opt=new Option&#40;&#34;Option &#34;+i, n&#41;; document.getElementById&#40;&#34;level2&#34;&#41;.options.add&#40;opt&#41;; 于是，Fx和IE都正常了……世界终于清净了…… 还没有完。每次我点击或者在level1中更改选项时，level1和level2都会不断的增加option，我需要在增加之前将原来的option进行清除。于是我再次借用标准的JavaScript： function clearOption&#40;selectID&#41; &#123; var obj; obj=document.getElementById&#40;selectID&#41;; var i; for&#40;i=1;i&#60;obj.length;i++&#41; &#123; obj.remove&#40;i&#41;; i--; &#125; &#125; 这里有一些技巧。我故意用一种比较笨的方法：从1（不是0，因为从0开始会把那个&#8212;的选项一起删除了）开始循环到options数组的长度。但是由于每次删除一个选项后，长度就会减1，且原来1的项目删除后，原来2的项目变成了1，所以，我必须用i&#8211;将i缩小一次。更好的方法是从最后一个元素开始删除，每次也只删除最后一个元素。有兴趣的可以自己完成。 这个代码是我在NetBeans IDE下完成的。它对jQuery支持的很好，有jQuery的代码提示，省去我遍寻API的烦恼。]]></description>
			<content:encoded><![CDATA[<p>今天终于完成了jQuery的一个确实有用的示例：两层的关联下拉框（2 Level Cascading Dropdown list）。示例见<a href="http://www.rsywx.net/jquery/demos/test03.html">此处</a>。  开始，我以为很简单。但是经过实战，还是有一些些小的技巧需要注意。  JSON的返回值是一个问题。在这个示例中，由于我并不关注返回值的问题（这个问题将在示例4中进一步研究），所以我只是简单返回一个字符串的数组。  <span id="more-1238"></span> 我遇到的第二个问题，是如何给select加option的问题。开始我用如下的代码：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> opt<span style="color: #339933;">=</span>document.<span style="color: #660066;">createElement</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;option&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
opt.<span style="color: #660066;">value</span><span style="color: #339933;">=</span>n<span style="color: #339933;">;</span>
opt.<span style="color: #660066;">text</span><span style="color: #339933;">=</span>i<span style="color: #339933;">;</span>
&nbsp;
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;select&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">filter</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#level1&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">append</span><span style="color: #009900;">&#40;</span>opt<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>这样做，在Fx下是可以了，但是在IE下不行：option加入正常，但是没有文本显示。所以，我采用更标准的JavaScript写法：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> opt<span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">new</span> Option<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Option &quot;</span><span style="color: #339933;">+</span>i<span style="color: #339933;">,</span> n<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;level2&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">options</span>.<span style="color: #660066;">add</span><span style="color: #009900;">&#40;</span>opt<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>于是，Fx和IE都正常了……世界终于清净了……  还没有完。每次我点击或者在level1中更改选项时，level1和level2都会不断的增加option，我需要在增加之前将原来的option进行清除。于是我再次借用标准的JavaScript：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> clearOption<span style="color: #009900;">&#40;</span>selectID<span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
      <span style="color: #003366; font-weight: bold;">var</span> obj<span style="color: #339933;">;</span>
      obj<span style="color: #339933;">=</span>document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span>selectID<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #003366; font-weight: bold;">var</span> i<span style="color: #339933;">;</span>
      <span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">=</span><span style="color: #CC0000;">1</span><span style="color: #339933;">;</span>i<span style="color: #339933;">&lt;</span>obj.<span style="color: #660066;">length</span><span style="color: #339933;">;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
      <span style="color: #009900;">&#123;</span>
        obj.<span style="color: #660066;">remove</span><span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        i<span style="color: #339933;">--;</span>
      <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span></pre></div></div>

<p>这里有一些技巧。我故意用一种比较笨的方法：从1（不是0，因为从0开始会把那个&#8212;的选项一起删除了）开始循环到options数组的长度。但是由于每次删除一个选项后，长度就会减1，且原来1的项目删除后，原来2的项目变成了1，所以，我必须用i&#8211;将i缩小一次。更好的方法是从最后一个元素开始删除，每次也只删除最后一个元素。有兴趣的可以自己完成。  这个代码是我在NetBeans IDE下完成的。它对jQuery支持的很好，有jQuery的代码提示，省去我遍寻API的烦恼。</p>
<div style="float:left;margin:0px 0px 0px 0px;"><a title="Post on Google Buzz" class="google-buzz-button" href="http://www.google.com/buzz/post" data-button-style="normal-count" data-url="http://www.rsywx.net/wordpress/2008/12/10/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b3%ef%bc%9a%e4%b8%a4%e5%b1%82%e7%9a%84%e5%85%b3%e8%81%94%e4%b8%8b%e6%8b%89%e6%a1%86/"></a><script type="text/javascript" src="http://www.google.com/buzz/api/button.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.rsywx.net/wordpress/2008/12/10/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b3%ef%bc%9a%e4%b8%a4%e5%b1%82%e7%9a%84%e5%85%b3%e8%81%94%e4%b8%8b%e6%8b%89%e6%a1%86/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>【jQuery】示例2：显示一个“Loading”提示</title>
		<link>http://www.rsywx.net/wordpress/2008/12/02/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b2%ef%bc%9a%e6%98%be%e7%a4%ba%e4%b8%80%e4%b8%aa%e2%80%9cloading%e2%80%9d%e6%8f%90%e7%a4%ba/</link>
		<comments>http://www.rsywx.net/wordpress/2008/12/02/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b2%ef%bc%9a%e6%98%be%e7%a4%ba%e4%b8%80%e4%b8%aa%e2%80%9cloading%e2%80%9d%e6%8f%90%e7%a4%ba/#comments</comments>
		<pubDate>Tue, 02 Dec 2008 12:42:07 +0000</pubDate>
		<dc:creator>tr</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[编程、软件、技术]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[例子]]></category>

		<guid isPermaLink="false">http://www.rsywx.net/wordpress/?p=1214</guid>
		<description><![CDATA[今天完成了一个在进行耗时长久的操作时，为了不让用户感到无聊而显示一个“载入中，请稍安勿躁”之类提示的小例子。 演示地址：此处。 ============== 为了使这个“耗时长久”的操作显得真实一些，我决定让我的jQuery通过ajax去调用一个PHP文件，并从PHP文件那里返回一些东西。当然，这只是一个demo，PHP文件不用太复杂： $t=rand&#40;3,6&#41;; sleep&#40;$t&#41;; $arr=array&#40;&#34;t&#34;=&#62;$t, &#34;foo&#34;=&#62;&#34;bar&#34;&#41;; $jarr=json_encode&#40;$arr&#41;; echo $jarr; 值得注意的有两点： 第一，在返回到jQuery之前，我先用PHP函数json_encode将要返回的东西进行JSON编码。JSON是很通用的编码规范，jQuery、PHP都支持； 第二，返回需要用到的不是return，而是echo。这个很特别。我开始用的是return，然后在jQuery中死活得不到返回的数据流。 核心的jQuery代码是： var time_elapsed; var action; $&#40;document&#41;.ready&#40; &#160; function&#40;&#41; &#123; $&#40;&#34;a&#34;&#41;.filter&#40;&#34;#long&#34;&#41;.click&#40; function&#40;event&#41; &#123; event.preventDefault&#40;&#41;; $.getJSON&#40;&#34;ajaxcall.php&#34;, function&#40;json&#41; &#123; time_elapsed=json.t; action=json.foo; &#125; &#41;; &#125; &#41;; &#160; $&#40;&#34;div&#34;&#41;.filter&#40;&#34;#div01&#34;&#41;.ajaxStart&#40; function&#40;&#41; &#123; $&#40;this&#41;.slideDown&#40;&#34;slow&#34;&#41;; &#125; &#41;.ajaxComplete&#40; function&#40;&#41; &#123; alert&#40;&#34;本次&#34;+action+&#34;的操作耗时&#34;+time_elapsed+&#34;秒。&#34;&#41;; $&#40;this&#41;.fadeOut&#40;&#34;slow&#34;&#41;; &#125; &#41;; &#125; &#41;; 这里需要注意三点： 第一，变量的说明要在所有函数体之外，类似全局变量。虽然使用全局变量不好，但是在这样小规模的代码段中，也是可以接受的； 第二，请注意获得json数据流中变量的方法。由于在PHP中我是用JSON编码我的返回值，所以我必须用getJSON去调用PHP文件，从而获得数据。同时，可以注意到，经由getJSON得到的数据已经变成了一个对象数组，我可以用json.t，json.foo这样很直观的方法来获取返回值。 第三，请注意ajax调用和针对ajax调用时状态处理函数的声明。ajax的调用必须用$.getJSON的方式；而ajax调用状态中最重要的就是ajaxStart和ajaxComplete。 [...]]]></description>
			<content:encoded><![CDATA[<p>今天完成了一个在进行耗时长久的操作时，为了不让用户感到无聊而显示一个“载入中，请稍安勿躁”之类提示的小例子。</p>
<p>演示地址：<a href="http://www.rsywx.net/jquery/demos/test02.html">此处</a>。</p>
<p>==============</p>
<p><span id="more-1214"></span></p>
<p>为了使这个“耗时长久”的操作显得真实一些，我决定让我的jQuery通过ajax去调用一个PHP文件，并从PHP文件那里返回一些东西。当然，这只是一个demo，PHP文件不用太复杂：</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$t</span><span style="color: #339933;">=</span><span style="color: #990000;">rand</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">6</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">sleep</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$t</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$arr</span><span style="color: #339933;">=</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;t&quot;</span><span style="color: #339933;">=&gt;</span><span style="color: #000088;">$t</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;foo&quot;</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">&quot;bar&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$jarr</span><span style="color: #339933;">=</span><span style="color: #990000;">json_encode</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$arr</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$jarr</span><span style="color: #339933;">;</span></pre></div></div>

<p>值得注意的有两点：</p>
<p>第一，在返回到jQuery之前，我先用PHP函数json_encode将要返回的东西进行JSON编码。JSON是很通用的编码规范，jQuery、PHP都支持；</p>
<p>第二，返回需要用到的不是return，而是echo。这个很特别。我开始用的是return，然后在jQuery中死活得不到返回的数据流。</p>
<p>核心的jQuery代码是：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">	<span style="color: #003366; font-weight: bold;">var</span> time_elapsed<span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">var</span> action<span style="color: #339933;">;</span>
$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;a&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">filter</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#long&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span>
			<span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>event<span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				event.<span style="color: #660066;">preventDefault</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				$.<span style="color: #660066;">getJSON</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;ajaxcall.php&quot;</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>json<span style="color: #009900;">&#41;</span>
					<span style="color: #009900;">&#123;</span>
						time_elapsed<span style="color: #339933;">=</span>json.<span style="color: #660066;">t</span><span style="color: #339933;">;</span>
						action<span style="color: #339933;">=</span>json.<span style="color: #660066;">foo</span><span style="color: #339933;">;</span>
					<span style="color: #009900;">&#125;</span>
				<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;div&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">filter</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#div01&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ajaxStart</span><span style="color: #009900;">&#40;</span>
			<span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">slideDown</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;slow&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ajaxComplete</span><span style="color: #009900;">&#40;</span>
			<span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;本次&quot;</span><span style="color: #339933;">+</span>action<span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;的操作耗时&quot;</span><span style="color: #339933;">+</span>time_elapsed<span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;秒。&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">fadeOut</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;slow&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>这里需要注意三点：</p>
<p>第一，变量的说明要在所有函数体之外，类似全局变量。虽然使用全局变量不好，但是在这样小规模的代码段中，也是可以接受的；</p>
<p>第二，请注意获得json数据流中变量的方法。由于在PHP中我是用JSON编码我的返回值，所以我必须用getJSON去调用PHP文件，从而获得数据。同时，可以注意到，经由getJSON得到的数据已经变成了一个对象数组，我可以用json.t，json.foo这样很直观的方法来获取返回值。</p>
<p>第三，请注意ajax调用和针对ajax调用时状态处理函数的声明。ajax的调用必须用$.getJSON的方式；而ajax调用状态中最重要的就是ajaxStart和ajaxComplete。</p>
<p>So far, so good.</p>
<div style="float:left;margin:0px 0px 0px 0px;"><a title="Post on Google Buzz" class="google-buzz-button" href="http://www.google.com/buzz/post" data-button-style="normal-count" data-url="http://www.rsywx.net/wordpress/2008/12/02/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b2%ef%bc%9a%e6%98%be%e7%a4%ba%e4%b8%80%e4%b8%aa%e2%80%9cloading%e2%80%9d%e6%8f%90%e7%a4%ba/"></a><script type="text/javascript" src="http://www.google.com/buzz/api/button.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.rsywx.net/wordpress/2008/12/02/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b2%ef%bc%9a%e6%98%be%e7%a4%ba%e4%b8%80%e4%b8%aa%e2%80%9cloading%e2%80%9d%e6%8f%90%e7%a4%ba/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Delphi &amp; Ajax</title>
		<link>http://www.rsywx.net/wordpress/2007/08/10/delphi-ajax/</link>
		<comments>http://www.rsywx.net/wordpress/2007/08/10/delphi-ajax/#comments</comments>
		<pubDate>Fri, 10 Aug 2007 08:51:10 +0000</pubDate>
		<dc:creator>tr</dc:creator>
				<category><![CDATA[编程、软件、技术]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[delphi]]></category>

		<guid isPermaLink="false">http://www.rsywx.net/wordpress/?p=179</guid>
		<description><![CDATA[今天听了Gordon关于Delphi &#38; Ajax的在线讲座。 从他老人家那里要来了PPT文件，不敢私藏，与诸位分享。 下载：单击此处。]]></description>
			<content:encoded><![CDATA[<p>今天听了Gordon关于Delphi &amp; Ajax的在线讲座。</p>
<p>从他老人家那里要来了PPT文件，不敢私藏，与诸位分享。</p>
<p>下载：<a href="http://www.rsywx.net/misc/download.php">单击此处</a>。</p>
<div style="float:left;margin:0px 0px 0px 0px;"><a title="Post on Google Buzz" class="google-buzz-button" href="http://www.google.com/buzz/post" data-button-style="normal-count" data-url="http://www.rsywx.net/wordpress/2007/08/10/delphi-ajax/"></a><script type="text/javascript" src="http://www.google.com/buzz/api/button.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.rsywx.net/wordpress/2007/08/10/delphi-ajax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

