15 款优秀的 HTML5 jQuery 插件

如果你在寻找能优化网站,使其更具有创造力和视觉冲击的工具,那么这里刚好要介绍能为博客或者网站添彩的 jQuery 插件。在这篇文章中我们手机了一系列的令人兴奋的HTML5 jQuery 插件,帮助你创建更具吸引力,更漂亮的网站和博客。从改善标准 HTML 列表的易用性到在网页上放置 HTML5 驱动的音频播放器,以下的 jQuery 插件能为你的网站提供各种各样强大的功能。好好欣赏下面的 HTML5 jQuery 插件列表吧,希望大家能喜欢这篇文章,在列表中找到对你有用的 jQuery 插件。 1. Dynatable Dynatable 是个 jQuery 插件,能很好的改善标准 HTML 列表的可用性。一旦初始化,插件就会通过列表的行和列转换成 JSON 对象数组,时刻准备操作。它可以提供强大的排序,过滤,分页或者是搜索 API,同时可以用简单的方式处理所有操作,可以被用于其他架构的 HTML 元素,比如 list。 2. Least.js Least.js 创建随机响应式的 HTML5 和  CSS3 图像库,包括 Lazyload。它非常容易安装和使用,而且最终效果都是非常华美和漂亮。 3. Echo.js Echo 是个独立的 JavaScript 延迟加载图像工具。Echo 使用 HTML5 data-* 属性,速度非常的快。Echo 可以在 IE8+ 的浏览器运行, 它是非常简单的图像延迟加载工具,大小最小为 1KB ,是个 library agnostic(没有 jQuery/Zepto/other) Lazy-loading 只会在元素将要被查看时才会请求从服务器中加载图像,通过简单的修改图像 src 属性就可以自动运行。同时这也是异步操作的一个优势所在。 4. Slippery Slippry 是个 jQuery 图像库插件,拥有很多现代化时尚元素。首先,它使用 HTML5-CSS3 标记,在响应式布局(可选)上运行的非常好。它可以变成 Sass 或者是 CSS 样式,有多种转换选择,其中包括 Ken Burns 效果。 滑块可以设置为自动滑动,显示标题,后退-前进+导航控制。它提供重大事件函数的回调,多个示例和一个详细文档。 5. jQuery. Deviantartmuro jQuery.deviantartmuro 是个 jQuery 插件,提供方便的 deviantART muro HTML5 绘制应用的嵌入式 API 封装,允许用户提供图片绘制和编辑的第三方网站。网站上嵌入的 deviantART muro 允许用户从网站传递图片到 […]

龙生   13 Feb 2014
View Details

Web 开发者必备的 14 个 JavaScript 音频库

网页设计可能是现在最有趣的领域之一了。这块的东西对所有的人,不管是知识储备里有料没料的,都敞开大门,机会多多哦。 其最大的特点就是随着时间的推移,实践的深入,你可以慢慢学习着成为一个大鸟。 涉足这个领域,Google将会是你最好的导师,同时她也将毫无偏颇的对你的水平进行评价。设计并不全是铁定的要为应用程序的创建或者编程语言的一些逻辑应用进行大量的编码工作。她更像是创造力同逻辑代码的结合,从而可以使您开发出可以用美丽来评价的东西。 在网页设计的领域,玩转你手中工具的过程中也蕴藏着巨大的机遇。有趣的是,特定开发者存在的原因就在于并不是每一个人都同时具备编写逻辑代码的技能,并且拥有风格的艺术创造能力。 因此,在这种情况下我们就可以理直气壮的认为拥有两种技能的人机遇最大,他们 在这个领域比其他人更有机会收获成功。现在需要意识到的一个最重要的问题就是一个人类,或者让我称之为人,不会同时拥有所有的素质。这就是为什么从主要的编程语言角度来考虑,我们也会有对开发方面需求的原因。 这意味着更好更新的代码段和工具将会对开发者有帮助。一个开发的部分的 存在,在这个领域中就相应会有大量对新事物的需求,就像我们在这里将要讨论的音频效果。 老实说,向站点中加入音频效果会很有用处,这仍然是目前最好的开发者需要经历的一个发展阶段之一。现在喜爱使用Javascript进行设计的人拥有了发挥音频特性的基础设施,这就证明了它是一个可以推动网页设计向前发展的巨大舞台。这可能是网页设计领域加入的最新的也是最酷的东西之一,并且毫无疑问的事实是它将保持一个更长的发展时期。 1) JavaScript 音频库 –  Buzz Buzz 是一个小而强的 Javascript 库,能让你方便的利用上新的  HTML5 音频元素. 在非现代浏览器上它会悄悄的消失掉. 2) JavaScript 音频库 – Timbre js Timbre.js 提供了一种采用像jQuery和node.js采用的那种现代Javascript使用方式来处理和合成音频的功能. 他有许多的 T-Object (正式的称呼是: 音色对象Timbre Object),可以连接起来为整体的音效渲染定义基于图形的路由. 3) JavaScript 音频库 – jPlayer 4) JavaScript 音频库 – Annyang Annyang 是一个可以让你的访问者用语音命令操作你的站点页面的小巧的js库. Annyang 支持多种语言,但是没有其他依赖,仅重2kb,并且免费. 5) JavaScript 音频库 – Sound Manager 2 With the help of在 HTML5 和 Flash 功能的帮助下, SoundManager 2 基于单一的Javascript API提供可靠的跨平台音频支持. 6) JavaScript 音频库 – Plivo Plivo WebSDK 允许你直接从任意的web浏览器发送和接收声音. 他们提供了一个页面 SDK ,而在  SDK 的帮助下你可以创建像 Click to Call, Conferencing Apps 以及甚至像 Webphones 那样的应用程序. 7) JavaScript音频库 – SoundJS Javascript音频库SoundJs提供了简单的API和强大的功能,适合用于处理音频。 8) JavaScript音频库 – jWebAudio Web Audio可以被用于网络应用中声音的处理和同步。jWebAudio隐藏了Web Audio的技术细节,让控制音频变得更容易。 9) JavaScript音频库 – ION Sound 10) Howler js – 现代Javascript网络音频库 11) JavaScript音频库 – Fifer js 12) JavaScript音频库 – Twilio js Twilio.js让你在浏览器和Twilio应用之间建立音频连接。你可以在浏览器里使用主动或被动音频连接,以此构建网络电话、对讲机、网络会议、即时通话系统等等应用。 13) JavaScript音频库 – Audiolet 14) JavaScript音频库 […]

龙生   12 Feb 2014
View Details

Android 设置窗口全屏

设置全屏包括两个部分: 窗口全屏和Activity全屏。 窗口全屏 是指隐藏系统顶部用来显示时间、电量、信号等信息的标题栏 。 Activity全屏 是指隐藏程序的标题栏。我们可以通过修改AndroidManifest.xml文件来实现。 1.窗口全屏fullscreen.java代码如下: package wzhnsc.test.style; import android.app.Activity; import android.os.Bundle; import android.view.Window; import android.view.WindowManager; public class fullscreen extends Activity {       @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);               //不显示程序的标题栏        requestWindowFeature( Window.FEATURE_NO_TITLE );               //不显示系统的标题栏                   getWindow().setFlags( WindowManager.LayoutParams.FLAG_FULLSCREEN,                              WindowManager.LayoutParams.FLAG_FULLSCREEN );               setContentView( R.layout.main );    } } 2.修改 AndroidManifest.xml 我们可以修改activity或application的属性值来实现。 具体可以根据自己的情况来设置,两者区别如下: 1)activity: 只针对当前的Activity全屏。 2)application:所有的Activity都会全屏。 AndroidManifest.xml 内容如下: <?xml version="1.0" encoding="utf-8"?> <manifest      xmlns:android="http://schemas.android.com/apk/res/android"    package="wzhnsc.test.style"    android:versionCode="1"    android:versionName="1.0">    <application          android:icon="@drawable/icon"        android:label="@string/app_name"                          android:theme="@android:style/Theme.NoTitleBar.Fullscreen">        <activity android:name=".fullscreen"            android:label="@string/app_name"            android:theme="@android:style/Theme.NoTitleBar.Fullscreen">            <intent-filter>                <action android:name="android.intent.action.MAIN"/>                <category android:name="android.intent.category.LAUNCHER"/>            </intent-filter>        </activity>     </application>    <uses-sdk android:minSdkVersion="1"/> </manifest> from:http://blog.sina.com.cn/s/blog_4c451e0e010133ab.html

龙生   11 Feb 2014
View Details

WebView控件基本使用

这一期创新,我们来谈谈浏览器控件即WebView。先说什么是webView控件吧。 WebView是一个浏览器控件,通过这个控件可以直接访问网页,或者把输入的HTML字符串显示出来,功能比较强大,有以下几个优点: 1、功能强大,支持CSS,Java script等HTML语言,这样页面就能更漂亮。 2、能够对浏览器控件进行非常详细的设置,比如字体大小,背景色,滚动条样式等等。 3、能够捕捉到所有浏览器操作,比如点击URL,打开或关闭URL 4、能够很好的融入布局。 5、甚至webView还能和JS进行交互。 在使用webView时,我们要先取得一个webView实例,如下: WebView  browser=(WebView)findViewById(R.id.webkit); 取得实例后,我们要给browser定义一下WebSettings,WebSettings是WebView的具体设置类,可以对WebView进行非常详细的设置。 WebSettings bs = browser.getSettings();  取得了webView设置对象。 下面开始设置浏览器控件,几个最常用的设置如下: 1、bs.setSupportMultipleWindows(false); 浏览器不支持多窗口显示,意思就是说所有页面在单一窗口打开,这样避免了页面布局控制显示问题,也便于操作控制页面。 2、bs.setSupportZoom(false);  页面是否可以进行缩放。 3、bs.setBlockNetworkImage(false);  是否阻止图像的显示 4、bs.setCacheMode(); 设置缓存的模式,分为几种: LOAD_CACHE_ELSE_NETWORK   当本地没有缓存时,从网上下载 LOAD_CACHE_ONLY   只读取本地缓存        LOAD_DEFAULT  默认的缓存模式 LOAD_NORMAL  一般的缓存模式 LOAD_NO_CACHE  不读取缓存,所有内容均从网络下载。 5、bs.setJavaScriptEnabled(flag);是否支持JS。 其他比如设置字体等更不必详说,通过设置我们可以获得一个我们需要的浏览器窗口。 接着,我们还需一个类来继承WebViewClient,这个类用来监控浏览器的一系列事件。 webNotify wn = new webNotify(); browser.setWebViewClient(wn) 下面列举比较常用的4个事件: 1,接收到Http请求的事件 onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host, String realm) 2,打开链接前的事件 public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } 在这个函数我们可以做很多操作,比如我们读取到某些特殊的URL,于是就可以不打开地址,取消这个操作,进行预先定义的其他操作,这对一个程序是非常必要的。 3,载入页面完成的事件 public void onPageFinished(WebView view, String url){ } 同样道理,我们知道一个页面载入完成,于是我们可以关闭loading条,切换程序动作。 4,载入页面开始的事件 public void onPageStarted(WebView view, String url, Bitmap favicon) { } 这个事件就是开始载入页面调用的,通常我们可以在这设定一个loading的页面,告诉用户程序在等待网络响应。 通过这几个事件,我们可以很轻松的控制程序操作,一边用着浏览器显示内容,一边监控着用户操作实现我们需要的各种显示方式,同时可以防止用户产生误操作。 最后我们的浏览器设置好了,可以监控操作了,于是打开一个网址: browser.loadUrl("http://www.baidu.com/"); 当然也可以是自己设定的一段html字符串,当然你的URL要符合规范。 browser.loadDataWithBaseURL() 如何和JS进行交互 到这里基本的webView的基本使用介绍完毕,接下来我们来讨论一下webView如何与JS进行交互,这个功能非常强大,能够做出很多意想不到的事情。 首先我们在页面里有这么一段JS代码: <html> <script language="javascript"> function wave() { document.getElementById("droid").src="android_waving.png"; } </script> <body>    <a> <img id="droid" src="android_normal.png"/><br> Click me! </a> </body>  </html> function wave()就是我们要调用的函数,首先要让browser能与页面进行交互bs.setJavaScriptEnabled(true);( 让浏览器支持JS)  接着: browser.addJavascriptInterface(new Object() { public void clickOnAndroid(){ mHandler.post(new Runnable(){ public void run() { mWebView.loadUrl("javascript:wave()"); } }); } }, "index"); 这里的重点就是addJavascriptInterface(Object obj,String interfaceName)方法,该方法将一个java对象绑定到一个javascript对象中,javascript对象名就是 interfaceName,作用域是Global。这样初始化webview后,在webview加载的页面中就可以直接通过 javascript:window.demo访问到绑定的java对象了。 到此为止,我们就能在自己的浏览器里实现html页面里面的js 代码了,具体能实现什么功能这里就不做详细举例了,实用中就会发现,这个功能很强大。 from:http://wenku.baidu.com/link?url=lts8Sg3KWlu5M4l_dnGiL2rQ6ClPvGjW2ryKni3DSjv3J8WjSgJ9X0mwPk4KAGwJO9YUEaiZ8Kqv6lRTWe0pIfFORZVAQtrfqOMucBj2WLO

龙生   11 Feb 2014
View Details

WebView使用

大部分内容为网上整理其它高人的帖子,现只作整理,用于查看: 在Android手机中内置了一款高性能webkit内核浏览器,在SDK中封装为一个叫做WebView组件。 什么是webkit WebKit是Mac OS X v10.3及以上版本所包含的软件框架(对v10.2.7及以上版本也可通过软件更新获取)。 同时,WebKit也是Mac OS X的Safari网页浏览器的基础。WebKit是一个开源项目,主要由KDE的KHTML修改而来并且包含了一些来自苹果公司的一些组件。 传统上,WebKit包含一个网页引擎WebCore和一个脚本引擎JavaScriptCore,它们分别对应的是KDE的KHTML和KJS。不过, 随着JavaScript引擎的独立性越来越强,现在WebKit和WebCore已经基本上混用不分(例如Google Chrome和Maxthon 3采用V8引擎,却仍然宣称自己是WebKit内核)。 这里我们初步体验一下在android是使用webview浏览网页,在SDK的Dev Guide中有一个WebView的简单例子 。 在开发过程中应该注意几点: 1.AndroidManifest.xml中必须使用许可"android.permission.INTERNET",否则会出Web page not available错误。 2.如果访问的页面中有Javascript,则webview必须设置支持Javascript。 webview.getSettings().setJavaScriptEnabled(true); 3.如果页面中链接,如果希望点击链接继续在当前browser中响应,而不是新开Android的系统browser中响应该链接,必须覆盖 webview的WebViewClient对象。     mWebView.setWebViewClient(new WebViewClient(){                     public boolean shouldOverrideUrlLoading(WebView view, String url) {                         view.loadUrl(url);                         return true;                     }         });     4.如果不做任何处理,浏览网页,点击系统“Back”键,整个Browser会调用finish()而结束自身,如果希望浏览的网 页回退而不是推出浏览器,需要在当前Activity中处理并消费掉该Back事件。     public boolean onKeyDown(int keyCode, KeyEvent event) {         if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {             mWebView.goBack();                    return true;         }         return super.onKeyDown(keyCode, event);     }     下一步让我们来了解一下android中webview是如何支持javascripte自定义对象的,在w3c标准中js有 window,history,document等标准对象,同样我们可以在开发浏览器时自己定义我们的对象调用手机系统功能来处理,这样使用js就可以 为所欲为了。 看一个实例:     view plaincopy to clipboardprint? public class WebViewDemo extends Activity {     private WebView mWebView;     private Handler mHandler = new Handler();     public void onCreate(Bundle icicle) {         super.onCreate(icicle);         setContentView(R.layout.webviewdemo);         mWebView = (WebView) findViewById(R.id.webview);         WebSettings webSettings = mWebView.getSettings();         webSettings.setJavaScriptEnabled(true);         mWebView.addJavascriptInterface(new Object() {             public void clickOnAndroid() {                 mHandler.post(new Runnable() {                     public void run() {                         mWebView.loadUrl("javascript:wave()");                     }                 });             }         }, "demo");         mWebView.loadUrl("file:///android_asset/demo.html");     } }     我们看addJavascriptInterface(Object obj,String interfaceName)这个方法,该方法将一个java对象绑定到一个javascript对象中,javascript对象名就是 interfaceName(demo),作用域是Global。这样初始化webview后,在webview加载的页面中就可以直接通过 javascript:window.demo访问到绑定的java对象了。来看看在html中是怎样调用的。   […]

龙生   11 Feb 2014
View Details

前端优秀辅助工具(html5+css3)(转载)

CSS3对于前端工程师来说,越来越重要了。有很多CSS3的效果真的不需我们自己一个一个 去写,在这种情况就互联网上有关于CSS3的工具就出现了,这些工具将给你的制作节省很 多时间,让你有更多的时间去做自己想要做的事情。   CSS Animatie CSS Animatie是一款在线制作CSS3动画的工具,可以在线直接制作CSS3动画效果,生成代码。   http://cssanimate.com/   Long Shadows Generate Long Shadows Generate是一款在线使用纯CSS3实现长阴影的效果,一款强大的扁平化长投影制造器。 http://sandbox.juan-i.com/longshadows/     Fontastic Fontastic是一个在线生成字体图标的app,可以定制属于自己的图标字体。 http://fontastic.me/   Screensiz.es Screensiz.es站收集整理了移动端的相关尺寸。   http://screensiz.es/phone   Live Tools Live Tools是一个UI制作工具,他提供了按钮、表单、icon图标和Ribbons的制作工具, 可以在线配置相关参数,生成你需要的效果代码。   http://livetools.uiparade.com/index.html   Button Generator 生成和图片效果一样的按钮工具。 http://www.cssbuttongenerator.com/     @FONT-FACE GENERATOR @FONT-FACE GENERATOR只需其中一种字体,就可以帮我们转换成@font-face各浏览器 下所需的所有字体格式。只是中文字体太大,不太好用。   http://www.fontsquirrel.com/tools/webfont-generator     @font-face ICON图标 ICON使用@font-face制作是越来越普遍了,但有一些icon字体库有几个icon,而往往我 们有时候只需要其中的几个,加载所有的icon感觉浪费,其实没有必要这么做的,在线 有两个网站,上面提供了各种字体icon库,我们只需要选择其中的部分,进行安装就OK了。 http://fontello.com/     http://icomoon.io/app/#/select       Ultimate CSS Gradient Generator Ultimate CSS Gradient Generator真心的好用,是我常用的一个在线制作渐变的工具, 他除了类似于photoshop的渐变工具之外,还是firefox和chrome浏览器的一个插件。而 且还能生成兼容IE的滤镜代码,好强大的。 http://www.colorzilla.com/gradient-editor/       Pageblox Pageblox是一款在线生成布局的工具,提供了七种常见的布局模式,而且还可以根据自 己的需求做一些自定义的设置。 https://www.pageblox.com/generate   CSS Load CSS Load是一款纯代码制作loading的工具。 http://www.w3cplus.com/source/front-end-developer-excellent-tool.html […]

龙生   10 Feb 2014
View Details

子域名里有下划线会影响IE下Session丢失

问题重现: 1.公司的一个项目上线后想部署一个测试环境,于是域名就命名为http://test_mj.renrengy.com。但问题来了:登录界面的验证码一直提示过期。   2.代码完全一样,于是开始怀疑是服务器的设置,于是把IIS的设置设置为一样,但问题依旧。 3.转念一样,只有IE下才有session丢失的问题,于是度娘一下,网上说IE10以后有丢session的传统,于是按照解决方法打补丁,可问题依旧。 4.但正式环境是正常的,于是给测试环境加了IP和端口,居然正常了。 5.看来是域名的问题,马上想到是不是下划线的问题,去掉后一切正常。   疑问: 1.为什么只有IE请求时才有此问题? 2.客户端也会影响到session?  

龙生   27 Jan 2014
View Details

给开发者准备的 10 款最好的 jQuery 日历插件

这篇文章介绍的是 10 款最棒而且又很有用的 jQuery 日历插件,允许开发者们把这些漂亮的日历插件结合到自己的网站中。这些日历插件易用性都很强,轻轻松松的就可以把漂亮的日历插件装饰到你的网站了。希望下 面的插件列表能给予你一定的帮助,让你的 web 开发更快更好。旧版本的日历插件和下拉框已经被淘汰啦,好好欣赏 jQuery 日历插件给你带来的强烈视觉冲击吧! 1. CLNDR.js CLNDR.js 是一个日历插件,用来创建日历,允许用户随意的按照自己的想法去自定义日历。这个插件不会生成任何的标记,但是可以使用数据来填充 Underscore.js HTML 模版(产生下划线)。它提供一些很有帮助的选项,确定星期的推移,初始加载时显示日历,点击事件(像 下一个或者是前一个月)等等功能。 2. jQuery Verbose Calendar jQuery Verbose Calendar 是个日历插件,,提供优雅的用户界面和轻松的日期滚动切换。它同时显示一年的所有月份和具体日期。一旦加载就会自动滚动到“今天”并显示当天的日期,需要 鼠标放在日期上面才会提示是星期几。除此之外,这款日历插件可以通过单个函数插入到任何 HTML 元素中。虽然这款插件只有很少的参数可以自定义,但是当点击日期的时候可以添加自定义的回调内容。 3. wdCalendar wdCalendar (JQuery Event Calendar Plugin)是 Google Calendar 的一个克隆,基于jQuery实现。包含Google日历的大部分功能包括:提供按天/周/月查看视图;支持通过拖拉的方式创建/更新 /删除事件;功能丰富的 API;易于给合数据库一起使用。通常,处理持续很多天的事件是很复杂的,但是 wdCalendar 能在这些都做的很好! 4. CalendarPicker CalendarPicker 是一个 jQuery 插件,用来创建好看的外观和漂亮的原始日期选择器。它提供多个下一个或者上一个日期,月份或者是年份的选择,可以快速的选择相应的日期。除此之外,它支持 鼠标滚轮滚动的来控制上一个或者下一个按钮(使用鼠标滚轮插件)。日期选择器会默认显示当前的日期,或者加载任何一个已经选择的日期。日期和月份的名字是 可选的,用户可以自定义相应的漂亮多语言界面。 5. jMonthCalendar jMonthCalendar 是显示整整一个月的日历,支持添加相应的事件。用户可以用选项和简单的事件数组来初始化日历,后面的事情就可以交给 jMonthCalendar 了。这是个 jQuery 日历插件,带有扩展的功能,允许开发者与日历有很好的交互,比如当日历显示要修改月份的时候,或者是显示修改后的月份和点击日历事件之后。 jMonthCalender 现在支持 hover 扩展功能,鼠标在事件徘徊的时候就会触发事件。默认的时候,时间都会伴随有 URL 超链接,用户点击可以链接到详细信息的页面。 6. Full Calendar FullCalendar 是个jQuery 插件,提供完整大小的,可拖拽的日历,就像上图一样的日历。它使用 AJAX 来获取每月事件的动态i,而且很容易使用自己喜欢的格式去配置日历(Google Calendar 提供的扩展功能)。用户可以自定义它的外观,自定义触发事件之后的行为(比如,点击,拖拽事件等等)。 7. Cal-Heatmap Cal-Heatmap 是个 javascript 模块,用来创建日历热图。这个模块可以帮助用户创建一个日历,就像 github 用户的贡献日历一样,不同的是 Cal-Heatmap 有导航和其他很多的数据格式控件。 8. gIDatePicker glDatePicker 是个简单,自定义,轻量级的日期选择器 jQuery 日历插件。gIDatePicker 压缩之后大小只有 4KB(没压缩是 11 KB)。它包括了前进和后退导航,当前日期高亮显示,限制日期的选择,每个日期选择器都有各自的风格,显示用户当前选择的日期。 9. jQuery Frontier Calendar […]

龙生   27 Jan 2014
View Details

使用子查询可提升 COUNT DISTINCT 速度 50 倍

注:这些技术是通用的,只不过我们选择使用Postgres的语法。使用独特的pgAdminIII生成解释图形。 很有用,但太慢 Count distinct是SQL分析时的祸根,因此它是我第一篇博客的不二选择。 首先:如果你有一个大的且能够容忍不精确的数据集,那像HyperLogLog这样的概率计数器应该是你最好的选择。(我们会在以后的博客中谈到HyperLogLog。)但对于需要快速、精准答案的查询,一些简单的子查询可以节省你很多时间。 让我们以我们一直使用的一个简单查询开始:哪个图表的用户访问量最大? 1 select 2   dashboards.name,  3   count(distinct time_on_site_logs.user_id) 4 from time_on_site_logs  5 join dashboards on time_on_site_logs.dashboard_id = dashboards.id 6 group by name 7 order by count desc   首先,我们假设user_id和dashboard_id上已经设置了索引,且有比图表和用户数多得多的日志条目。 一千万行数据时,查询需要48秒。要知道原因让我们看一下SQL解析: 它慢是因为数据库遍历了所有日志以及所有的图表,然后join它们,再将它们排序,这些都在真正的group和分组和聚合工作之前。 先聚合,然后Join group-聚合后的任何工作代价都要低,因为数据量会更小。group-聚合时我们不需使用dashboards.name,我们也可以先在数据库上做聚集,在join之前: 01 select 02   dashboards.name, 03   log_counts.ct 04 from dashboards 05 join ( 06   select 07     dashboard_id, 08     count(distinct user_id) as ct 09   from time_on_site_logs  10   group by dashboard_id 11 ) as log_counts  12 on log_counts.dashboard_id = dashboards.id 13 order by log_counts.ct desc   现在查询运行了20秒,提升了2.4倍。再次通过解析来看一下原因: 正如设计的,group-聚合在join之前。而且,额外的我们可以利用time_on_site_logs表里的索引。   首先,缩小数据集 我们可以做的更好。通过在整个日志表上group-聚合,我们处理了数据库中很多不必要的数据。Count distinct为每个group生成一个哈希——在本次环境中为每个dashboard_id——来跟踪哪些bucket中的哪些值已经检查过。 我们可以预先计算差异,而不是处理全部数据,这样只需要一个哈希集合。然后我们在此基础上做一个简单的聚集即可。 01 select 02   dashboards.name, 03   log_counts.ct 04 from dashboards  05 join ( 06   select distinct_logs.dashboard_id,  07   count(1) as ct 08   from ( 09     select distinct dashboard_id, user_id 10     from time_on_site_logs 11   ) as distinct_logs 12   group by distinct_logs.dashboard_id 13 ) as log_counts  14 on log_counts.dashboard_id = dashboards.id […]

龙生   27 Jan 2014
View Details

win7系统 ping得通,网页打不开 QQ也不能打开

1.点击“开始菜单”,在“搜索程序和文件”框中输入cmd.exe,出现下图:

2.在cmd.exe图标上点击鼠标右键,在弹出的菜单中选择“以管理员身份运行”,如下图:

3.弹出UAC窗口,点击“允许”.

4.在cmd.exe程序中输入:netsh winsock reset

5.运行完成以后,按照提示,重新启动计算机.

6.重启电脑后,会弹出一个橙色提示框,请选择“允许此程序”,点击“确认”。

7.重新启动计算机

转自:http://zhidao.baidu.com/link?url=cwzYfJPeCK3WG5VUgtlDqMJDNcfXeP5i_YExQBOAQkfMeJaRy5VIcCtq9LxQVTNohtLYnYEJ99K2glNrjrg8ha

1 330 331 332 415