Time of Update: 2018-12-08
本文就從選擇符的角度簡單探討一下最佳化jQuery代碼的問題。 Sizzle的運行機制 jQuery從1.3開始把根據選擇符運算式尋找元素的代碼獨立出來,也就是Sizzle引擎。當我們把一個選擇符運算式(比如"#id"、".class"、":nth-child(2)")傳遞給$()函數時,Sizzle在內部會優先利用瀏覽器原生支援的DOM方法來尋找元素,以求得最大的執行速度。以下就是Sizzle會優先選用的幾個標準的原生方法(各個方法的用途不再贅述): 複製代碼
Time of Update: 2018-12-08
事件模型 說到事件,就要追溯到網景與微軟的“瀏覽器大戰”了。當時,事件模型還沒有標準,兩家公司的實現就是事實標準。網景在Navigator中實現了“事件捕獲”的事件系統,而微軟則在IE中實現了一個基本上相反的事件系統,叫做“事件冒泡”。這兩種系統的區別在於當事件發生時,相關元素處理(響應)事件的優先權不同。 下面舉例說明這兩種事件機制的區別。假設文檔中有如下結構: 複製代碼 代碼如下:<div> <span> <a>...</a>
Time of Update: 2018-12-08
一、首先需要知道的是: 1、keydown() keydown事件會在鍵盤按下時觸發. 2、keyup() keyup事件會在按鍵釋放時觸發,也就是你按下鍵盤起來後的事件 3、keypress() keypress事件會在敲擊按鍵時觸發,我們可以理解為按下並抬起同一個按鍵 二、獲得鍵盤上對應的ascII碼: 複製代碼 代碼如下:$(document).keydown(function(event){ console.log(event.keyCode); }); $tips:
Time of Update: 2018-12-08
剛好上次有同學提出疑問。剛好可以自測一下。先來看看老道在《JavaScript 精粹》P33 寫的吧。他對 String 對象擴充了一個 trim() 方法: 複製代碼 代碼如下:Function.prototype.method = function(name, func) { this.prototype[name] = func; return this; }; String.method('trim', function() { return this.replace(/^\s+|\s+
Time of Update: 2018-12-08
真的是太忙了,本應該有好多東西可以寫,但是沒什麼閑時間,每次想到寫的時候,來點事就又給忘了。10月最後一天了,在忙也得把這篇文章寫完,不然又得多一個空白月了。 這是之前帶領成員開發一個小模組功能的時候,需要用到快顯視窗載入樹狀級聯單位選擇,最後決定用採用jQuery+EasyUI外掛程式進行開發。但是在使用EasyUI中tree的外掛程式時,碰到了不少麻煩。為了提供彈出樹的顯示速度,就採用非同步載入數節點值,首先先載入根節點,然後根據點擊的節點展開載入子節點。 往往結果和預期的都不一樣,
Time of Update: 2018-12-08
當時我在分享會,想試試,但身邊沒有電腦。今天開啟 Firebug 的那一瞬間,突然記起這事。馬上試了一下之前想的一個方案。可以!代碼如下: 複製代碼 代碼如下:function a(){ var arr = Array(arguments); alert(arr instanceof Array); } a('b'); 在看 Baidu Tangram 的時候,最常看到的是 String('a string'),不像其實地方的用法,是使用與一個Null
Time of Update: 2018-12-08
jQuery為綁定和委託事件提供了.bind()、.live()和.delegate()方法。本文在討論這幾個方法內部實現的基礎上,展示它們的優劣勢及適用場合。 事件委託
Time of Update: 2018-12-08
網上的SQL最佳化的文章實在是很多,說實在的,我也曾經到處找這樣的文章,什麼不要使用IN了,什麼OR了,什麼AND了,很多很多,還有很多人拿出僅幾S甚至幾MS的時間差的例子來證明著什麼(有點可笑),讓許多人不知道其是對還是錯。而SQL最佳化又是每個要與資料庫打交道的程式員的必修課,所以寫了此文,與朋友們共勉。
Time of Update: 2018-12-08
A.截取從字串左邊開始N個字元 Declare @S1 varchar(100) Select @S1='http://www.xrss.cn' Select Left(@S1,4) ------------------------------------ 顯示結果: http B.截取從字串右邊開始N個字元(例如取字元www.163.com) Declare @S1 varchar(100) Select @S1='http://www.163.com' Select right(@S1,11
Time of Update: 2018-12-08
1. @@rowcount: 擷取受影響行數 複製代碼 代碼如下:update SNS_TopicData set TopicCount=TopicCount+1 where Topic ='1' if @@rowcount>0 begin print '成功' end else begin print '失敗' end 2.預存程序的調用 複製代碼 代碼如下:--申明返回變數 declare @topicCount int --執行 EXEC
Time of Update: 2018-12-08
瞭解了jQuery對DOM進行遍曆背後的工作機制,可以在編寫代碼時有意識地避免一些不必要的重複操作,從而提升代碼的效能。本文就從jQuery的遍曆機制入手簡單探討一下最佳化jQuery代碼的問題。 jQuery對象棧
Time of Update: 2018-12-08
如。 瞄了一下,置中可以用 text-align:center; 來實現。而按比例縮放,利用預設 <img /> 的 width 、height 屬性解決不了。因為使用者圖片可能是很長的,也可能是很寬的。線上上想了一下他們的關係,按條件來判斷是這樣的:複製代碼 代碼如下:if(實際寬度 > 預覽最大寬度) { 縮放寬度 = 預覽最大寬度 } if(實際高度 > 預覽最大高度) { 縮放高度 = 預覽最大高度 }
Time of Update: 2018-12-08
在使用資料庫的時候,難免要在使用過程中進行刪除的操作,如果是使用int類型的欄位,令其自增長,這是個最簡單的辦法,但是後果會有些不是你想要的!看下這個Demo: 1.建立這樣的簡單的表Test. 2.設定欄位id的自增. 3.表添加資料 insert into Test(name) values('TestName') insert into Test(name) values('TestName') insert into Test(name)
Time of Update: 2018-12-08
複製代碼 代碼如下:// //使用方法 //$(文本域選取器).insertContent("插入的內容"); //$(文本域選取器).insertContent("插入的內容",數值); //根據數值選中插入常值內容兩邊的邊界, 數值: 0是表示插入文字全部選擇,-1表示插入文字兩邊各少選中一個字元。 // //在游標位置插入內容, 並選中 (function($) { $.fn.extend({ insertContent: function(myValue, t) { var $t = $
Time of Update: 2018-12-08
以下為測試例子。 1.首先建立兩張暫存資料表並錄入測試資料: 複製代碼 代碼如下:create table #temptest1 ( id int, name1 varchar(50), age int ) create table #temptest2 ( id int, name1 varchar(50), age int ) 查詢出此時的表資料為:#temptest1
Time of Update: 2018-12-08
靈活性方面考慮了比較多的方面,提供了幾個重要的配置方便在各類環境下使用,歡迎各位童鞋使用,源碼完全開放。開發這個外掛程式的緣於前段時間維護一個4級級聯下拉框被裡面200行代碼及複雜的結構和bug所鬱悶(之所以這麼多代碼是因為該級聯下拉框有時只出現2個或3個),想到這類的需求其實經常都能遇到,jquery裡沒有這樣比較好的外掛程式,索性自己開發個。原始碼並不複雜,稍微複雜的地方在第二個外掛程式使用了緩衝,造成理解起來十分困難,後面會做些解釋。 外掛程式一:適合在不與伺服器進行AJAX互動情況使用,
Time of Update: 2018-12-08
在上一篇文章: 覺得豬八戒網左下角的文字滾動,效果不錯,自己摸索了一下,以自己的方法實現了!就有這種效果,不過影響不大。Demo的影響就大了!網上也有人出現過這樣的問題看下面的文章地址: firefox 6下 setInterval的一個問題討論的人很多,但沒給出答案來。怎麼想都想不明白!今天,突然茅塞頓開,可能是線程的概念,但是具體原因還是不明白,希望有人瞭解其原應告知,非常感激!Demo 中黑色的Div是不受瀏覽器標籤切換影響的而紅色的Div會受到影響。HTML: 複製代碼
Time of Update: 2018-12-08
要實現的SQL查詢很原始:要求從第一個表進行查詢得到第二個表格式的資料,上網查詢之後竟然能寫出下面的SQL:複製代碼 代碼如下:select * from userino SELECT * FROM( SELECT DISTINCT userpart FROM userino )A OUTER APPLY( SELECT [usernames]= replace(replace(replace((SELECT username as value FROM userino N WHERE
Time of Update: 2018-12-08
像:jQuery的table排序外掛程式(感覺其使用比較麻煩或不清楚其具體用法,就沒有使用)、原生態js的table排序外掛程式等,最後比較看了下——採用了一個原生態js的table排序外掛程式,並在其基礎上做了些修改,雖有些勉強或有些地方使用不太舒服,但最算是比較好的實現了當時需要的功能。而前兩天,對原有表格做了點兒修改——增加隔行換色的功能,問題就出現了,——效果錯亂;檢查分析了下,問題出在其table排序外掛程式代碼上——其原代碼寫的比較難理解,修改還不如重新自己寫一個table排序外掛程
Time of Update: 2018-12-08
一、Xtrabackup介紹 A、Xtrabackup是什麼 Xtrabackup是一個對InnoDB做資料備份的工具,支援線上熱備份(備份時不影響資料讀寫),是商業備份工具InnoDB Hotbackup的一個很好的替代品。 Xtrabackup有兩個主要的工具:xtrabackup、innobackupex 1、xtrabackup只能備份InnoDB和XtraDB兩種資料表,而不能備份MyISAM資料表 2、innobackupex是參考了InnoDB