﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-云自无心水自闲-随笔分类-JQuery</title><link>http://www.blogjava.net/usherlight/category/32679.html</link><description>天平山上白云泉，云自无心水自闲。何必奔冲山下去，更添波浪向人间！</description><language>zh-cn</language><lastBuildDate>Wed, 12 Oct 2016 14:36:19 GMT</lastBuildDate><pubDate>Wed, 12 Oct 2016 14:36:19 GMT</pubDate><ttl>60</ttl><item><title>Jquery UI datepicker 结合使用 bootstrap glyphicon </title><link>http://www.blogjava.net/usherlight/archive/2016/10/10/431879.html</link><dc:creator>云自无心水自闲</dc:creator><author>云自无心水自闲</author><pubDate>Mon, 10 Oct 2016 11:57:00 GMT</pubDate><guid>http://www.blogjava.net/usherlight/archive/2016/10/10/431879.html</guid><wfw:comment>http://www.blogjava.net/usherlight/comments/431879.html</wfw:comment><comments>http://www.blogjava.net/usherlight/archive/2016/10/10/431879.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/usherlight/comments/commentRss/431879.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/usherlight/services/trackbacks/431879.html</trackback:ping><description><![CDATA[<div><div><br />1, 先定义一个input, 做为datepicker的容器。<br />&lt;input type='text' class="form-control" id="dateTo" name="dateTo" required/&gt;<br /><br />2, 在后面加上glyphicon, 注意关键是label 中的for的id需要是前面定义的容器的id, 这样点击glyphicon的时候就会触发弹出日期选择框。</div>&lt;label for="dateTo" class="input-group-addon"&gt;&lt;span class="glyphicon glyphicon-time"&gt;&lt;/span&gt;&lt;/label&gt;</div><img src ="http://www.blogjava.net/usherlight/aggbug/431879.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/usherlight/" target="_blank">云自无心水自闲</a> 2016-10-10 19:57 <a href="http://www.blogjava.net/usherlight/archive/2016/10/10/431879.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>prototype版的table filter</title><link>http://www.blogjava.net/usherlight/archive/2010/07/28/327294.html</link><dc:creator>云自无心水自闲</dc:creator><author>云自无心水自闲</author><pubDate>Wed, 28 Jul 2010 03:02:00 GMT</pubDate><guid>http://www.blogjava.net/usherlight/archive/2010/07/28/327294.html</guid><wfw:comment>http://www.blogjava.net/usherlight/comments/327294.html</wfw:comment><comments>http://www.blogjava.net/usherlight/archive/2010/07/28/327294.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/usherlight/comments/commentRss/327294.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/usherlight/services/trackbacks/327294.html</trackback:ping><description><![CDATA[<p>jquery有一个很方便的插件UI Table Filter可以根据输入的内容隐藏显示表格中相应的数据行。<br />
因为目前使用的tapestry捆绑的是prototype，所以就自己写了一个类似的插件。</p>
<p>&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;script src="prototype-1.6.0.2.js" type="text/javascript"&gt;&lt;/script&gt;<br />
&lt;script language="javaScript"&gt;<br />
&nbsp;Event.observe(window, 'load', function() {<br />
&nbsp;&nbsp;Event.observe('filter', 'keyup', filterTable);<br />
&nbsp;});<br />
&nbsp;function filterTable() {<br />
&nbsp;&nbsp;var filterCaseElement = document.getElementById('filterCase');<br />
&nbsp;&nbsp;var caseSensitive = filterCaseElement.checked;<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;$$('tr').each(function(trElement, ind) {<br />
&nbsp;&nbsp;&nbsp;var val = $('filter').value;<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;if ( ! caseSensitive ) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;val = val.toLowerCase();<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;trElement.childElements().each(function(tdElememt) {<br />
&nbsp;&nbsp;&nbsp;&nbsp; var tdText = tdElement.innerText;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if ( ! caseSensitive ) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tdText = tdText.toLowerCase();<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;if (tdText.include(val)) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;trElement.show();<br />
&nbsp;&nbsp;&nbsp;&nbsp;} else if ( ind &gt; 0 ) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;trElement.hide();<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;});<br />
&nbsp;&nbsp;});<br />
&nbsp;}<br />
&lt;/script&gt;<br />
</p>
&lt;/head&gt;<br />
<br />
&nbsp;&lt;body&gt;<br />
&nbsp;&nbsp;filter: &lt;input type="text" id="filter" name="filter"/&gt; &lt;input type="checkbox" id="filterCase" onchange="javaScript:filterTable();"/&gt; Case-Sensitive<br />
&nbsp;&nbsp;&lt;table border="1"&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;thead&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;th&gt;name&lt;/th&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;th&gt;column1&lt;/th&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;th&gt;column2&lt;/th&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;th&gt;column3&lt;/th&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;th&gt;column4&lt;/th&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;th&gt;column5&lt;/th&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;th&gt;column6&lt;/th&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;/thead&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;TEST&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;00150002331&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;238156&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;075&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;001&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;172.16.14.20&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;1-1-05&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;TEST-2&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;00150002332&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;238157&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;075&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;002&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;172.16.14.21&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;1-1-05&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;TEST&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;00150002333&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;238158&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;075&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;003&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;172.16.14.23&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;1-1-05&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;TEST&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;00150002341&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;238159&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;075&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;004&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;172.16.14.24&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;1-1-05&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;TEST&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;00150002339&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;238186&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;075&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;006&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;172.16.14.26&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;1-1-06&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&lt;/table&gt;<br />
&nbsp;&lt;/body&gt;<br />
&nbsp;&nbsp;&lt;/html&gt;<br />
<br />
如果页面中多个表格，而只需要对其中的一个表格的数据进行过滤的话，简单地把其中：$$('tr').each(function(ele, index) 改成 $$('#tableId, tr').each(function(ele, index) 就行了，其中的tableId就是表格的id<img src ="http://www.blogjava.net/usherlight/aggbug/327294.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/usherlight/" target="_blank">云自无心水自闲</a> 2010-07-28 11:02 <a href="http://www.blogjava.net/usherlight/archive/2010/07/28/327294.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>我的struts2项目性能调优三步曲</title><link>http://www.blogjava.net/usherlight/archive/2008/07/01/211869.html</link><dc:creator>云自无心水自闲</dc:creator><author>云自无心水自闲</author><pubDate>Tue, 01 Jul 2008 05:33:00 GMT</pubDate><guid>http://www.blogjava.net/usherlight/archive/2008/07/01/211869.html</guid><wfw:comment>http://www.blogjava.net/usherlight/comments/211869.html</wfw:comment><comments>http://www.blogjava.net/usherlight/archive/2008/07/01/211869.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.blogjava.net/usherlight/comments/commentRss/211869.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/usherlight/services/trackbacks/211869.html</trackback:ping><description><![CDATA[前一段时间有反映说是一个使用了struts2的生产系统的页面显示速度太慢。登录后发现确实如此，于是进行了一番性能调优的研究和测试。<br />
一，根据struts2官方的性能调优说明进行了一些参数的修改。<br />
http://struts.apache.org/2.x/docs/performance-tuning.html<br />
http://cwiki.apache.org/WW/performance-tuning.html<br />
<br />
Turn off logging and devMode.(关闭logging和Devmode)<br />
这个当然没问题，但是全部关闭logging不现实，我只是关闭了struts2相关package的logging<br />
<br />
Do not use interceptors you do not need.<br />
把struts.xml中不需要的interceptor统统删除<br />
<br />
Use the correct HTTP headers (Cache-Control &amp; Expires).<br />
不确定应该如何修改<br />
<br />
Copy the static content from the Struts 2 jar when using the Ajax theme (Dojo) or the Calendar tag.<br />
关于这点，后面会提到<br />
<br />
Create a freemarker.properties file in your WEB-INF/classes directory.<br />
照做<br />
<br />
Create the freemarker.properties file and add the following setting (or whatever value you deem fitting):<br />
template_update_delay=60000<br />
照做<br />
<br />
Enable Freemarker template caching<br />
As of Struts 2.0.10, setting the property struts.freemarker.templatesCache to true will enable the Struts internal caching of Freemarker templates. This property is set to false by default.<br />
照做<br />
<br />
进行上述修改后，发现页面打开的速度并没有明显的提高.<br />
<br />
二，此时我已经基本锁定网页打开速度慢的原因与ajax(或者说是dojo)有关。因为dojo的js库大概有450K左右，先尝试使用gzip压缩javascript，减小传输量，看能否加快页面的加载速度<br />
在Tomcat的server.xml的connector中添加如下配置，激活gzip功能<br />
&nbsp;compression="on"<br />
&nbsp;compressionMinSize="2048"<br />
&nbsp;noCompressionUserAgents="gozilla, traviata"<br />
&nbsp;compressableMimeType="text/html,text/xml,text/javascript,application/x-javascript,application/javascript"<br />
进行上述修改后，发现页面打开的速度还是没有明显的提高.<br />
<br />
三，经过上述两个实验，觉得应该是struts2所封闭的dojo的性能问题了。于是引入JQuery.<br />
JQuery的js文件最小是55K, gzip后应该更小，页面的响应速度明显改善（一个数量级以上的提高），主要原因在于与服务器交互的处理上极大地提升了效率。而且页面处理代码更加简洁明了。<br />
<br />
最后，我删除了所有的&lt;s:head theme="ajax"/&gt;和 &lt;s:head/&gt;(如果页面中加入&lt;s:head /&gt;，那么在Struts2生成的html中后包含dojo.js)，使用JQuery来完成所有的Ajax和javascript功能。<br />
<br /><img src ="http://www.blogjava.net/usherlight/aggbug/211869.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/usherlight/" target="_blank">云自无心水自闲</a> 2008-07-01 13:33 <a href="http://www.blogjava.net/usherlight/archive/2008/07/01/211869.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>