xueping wang 記錄2

在使用easyui的tabs的時候, 標籤頁上的 可關閉 按鈕 顯示不出來?javascript

  • tabs的 closable:true 屬性, 其實是經過在 標籤頭 tabHeader 中的最後面, 添加一個超連接 <a class="tabs-close" href="javascript:void(0)" > </a> 來實現的
  • 其關閉圖標, 是經過 .tabs-close這個樣式類來實現的: a.tabs-close { background: url('images/tabs-icons.png') no-repeat -34px center}

  • tabs-icons.png上有3個圖標, 爲了獲取其中一個的關閉按鈕圖標, 背景圖片的偏移位置 指定了 -34px center.
  • 因爲這裏的css文件是: easyui/themes/default/easyui.css文件, 而 背景圖片的位置 是指定在 images/tabs-icons.png的, 因此, 若是在 easyui_version/themes/default/images這個目錄中沒有相應的圖標文件的話, 就 不能顯示 關閉 按鈕了! 也就是說 即便你指定了 closable: true, 它只是 留了一個 關閉按鈕的 佔位符 在哪裏, 並不能看到 關閉圖標.
  • 因爲 關閉 是經過 js文件來實現的, 因此 即便你 沒有 關閉 按鈕, 可是 仍然可以關閉標籤頁.

所以, 不要輕易. 隨便的去刪除 easyui 目錄下的 子目錄! 好比這個 themes/default/images images目錄就不能刪除. 不然就會出問題!

====================================================php

爲何 onBeforeClose: function(){...}中使用 $.messager.confirm無效?
  1. 由於jeasyui的 $.messager.confirm/alert/progress/prompt等彈窗 都是 異步的: 即 主調函數 在執行到 $.messeger...的時候, 不會等到 messager的回調函數執行完了, 而是 直接就跳到 $.messager的下一條語句執行了, 直到主調 函數 執行完成後, 纔會 再去執行 $.messager... 的回調函數 . 因此 發生了 tabs已經關閉了, 才彈出 消息框.css

  2. 也就是說, 主調函數在 執行過程當中, 是沒法進入到 $.messager...的 回調函數中的 所以 , 也就沒法在 回調函數if(r)...中 去改變主調函數中的 變量值了: 基本上是: 主調函數 執行完畢, 並且已經退出了以後, 纔會 再去執行 $.messager...的回調函數.html

==============================================java

vim摺疊的透徹理解了

若是設置的摺疊方法是 fdm=indent的時候(查看當前摺疊的方法是: set foldmethod) , 那麼是會 按縮進進行摺疊的! 是不須要你去 手動的建立摺疊的, 會 本身自動的 建立 摺疊. 那麼, 當光標位於某一行的時候, 按zc到底會摺疊哪些內容呢? ::: 將會摺疊 當前行 + 跟當前行全部 同級 的內容. .. > 直到 當前行的 上一級 父標籤. 結果就只有 父標籤的內容將會顯示, 而裏面的內容將被摺疊隱藏 zo展開當前摺疊, 大寫的: zO將會展開當前摺疊下全部的子摺疊 zc 和 zC 則是同理的.mysql

**除了上面的 zc, zo, zO 能夠一級一級的摺疊以外, 那麼, 要一次性的摺疊全部的, 也就是 多級的摺疊和展開 , 有兩個工具, 一個是: 摺疊全部的 , 使用: zM , 一個是 打開全部的 摺疊, 使用 zR ** **要注意的是, 不一樣的 fdm, 摺疊方法, 可使用的摺疊快捷鍵 操做是不同的, 好比 採用 fdm=marker的時候, 那麼操做 zf等 就無效! **sql

=======================================數據庫

margin或padding的值爲 1到4個值的時候, 分別指的是哪些?

margin爲4個時,margin:上 右 下 左;(爲順時針方向) margin爲3個時,margin:上 左=右 下; 即爲三層: 上 / 中/ 下 margin爲2個時,margin:上=下 左=右; margin爲1個時,margin:上=右=下=左;vim

===================================================數組

分類組件, 就是accordion, 就是多個 面板Ipanel)的組合在一塊兒, 因此 面板是全部組件的基礎, 最重要的基本組成元素。

對於accordion中的面板, 只須要有幾個 div就是了, 每一個div只須要一個 title屬性, 加上其中的內容就能夠了。

對於easyui bs等的屬性寫法或js的寫法:

  • 只有在牽涉到/包含有 事件或方法的時候 才用 js的寫法方式, 若是不牽涉到事件的話, 就推薦採用 屬性的方式 來書寫。
  • 全部組件的使用都是 雷同的 相似的, 都主要是 包含三個方面的內容: 屬性+ 事件 + 方法 , 思想步驟 用法都是同樣的 。
  • 屬性 統一寫在 data-options裏面和 單獨 按屬性的方式來寫 都是同樣的, 都是正確 有效的。

======================================

使用tp的 redirect跳轉, 其實 功能是很強大的, 並不僅是設置跳轉地值, 能夠有不少其餘參數的, 好比 跳轉時, 傳遞附加參數, 延時跳轉時間, 跳轉提示信息

參考: https://blog.csdn.net/dailoge/article/details/71028197

  • 使用空格只是分割 1個字符的距離, 可是若是要分隔 的位置較多 一般不用空格來分隔對齊, 而是用 padding(若是某些框架致使 padding不可用, 也可使用 margin)

  • 區分 isset和empty的區別: 前者是 判斷 這個變量是否有, 有沒有這個變量, 然後者是說, 若是這個有這個變量, 他的值是否是空值,好比是: ‘’, 0, 等等。

  • 判斷 某個變量不爲空, 就是使用 if(!empty(...)) 由於if自己就是一個 確定的 陳述語句, 因此, 他的直觀意思就是 : 「若是是 。。。。 」 if( !empty(...) ) 的直觀意思就是 : 「若是。。。 不是。。。」

  • 所以, 在判斷 POST的某個變量的時候, 就是 使用 兩個條件:一個是isset, 一個是!empty: 即: if(isset($_POST['FOO']) && !empty($_POST['FOO']) )

===========================

vim的dw和db區別?

因爲一個單詞, 老是 從前日後看的, 因此, 若是光標在單詞的開頭, 則 dw將刪除整個單詞, 若是光標在 單詞的後面, 則 db刪除單詞的時候, 則認爲, 當前光標所在位置字母不屬於 單詞全部, 因此 db 將只刪除 當前光標以前的 單詞字母, 當前光標所在的字母將不刪除.

如何設置 按f5或鼠標右鍵的刷新事件?

  • 不要使用 keydown 事件, 這個主要是針對 某些特殊的按鍵, (不包括 f5 或 右鍵刷新)
  • 右鍵刷新 或 按 f5 刷新, 能夠在 window.onload = function(){....} 的js方法中 來寫! 具體參考: unbeforeunload()事件能夠禁止onunload()事件的觸發, 這個是用來 寫 關閉頁面的觸發事件 https://www.cnblogs.com/jianmingyuan/p/5962729.html

關於 外鍵?

  • 對於 主鍵 所在的 表 其實 是 沒有任何影響的. 甚至說 , 它根本就是"渾然不覺" 的

  • 外鍵是: key 字段名 constraint 外鍵約束名稱 : 一般是 表名_ibfk_1(fk就是 foreign key的意思) references... 是 一個表的 非主鍵 字段/ 普通字段, (跟另外一個表的 主鍵字段關聯) 因此 要 刪除 外鍵 要在 建立 外鍵約束的 表中 去 alter .

  • 刪除外鍵的語法是: alter table tbl1 drop foreign key 約束名稱 (即 constraint後 的那個名字 )

CREATE TABLE `pj_stud` (
  `stu_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
  `class_id` smallint(5) unsigned DEFAULT NULL,
  `name` varchar(20) NOT NULL,
  PRIMARY KEY (`stu_id`),                    // 主鍵
  UNIQUE KEY `name` (`name`),          //  惟一性key
  KEY `class_id` (`class_id`),                // 普通索引
  CONSTRAINT `pj_stud_ibfk_1` FOREIGN KEY (`class_id`) REFERENCES `pj_class` (`class_id`)  // 外鍵約束.
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8

=============================

關於數據庫的存儲引擎?

  • mysql有四種經常使用的 innodb, myisam , memory, blackhole(做中繼存儲服務器)存儲引擎.
  • 注意默認的是 myisam, 就是說, 若是你i不顯式地指定存儲引擎的話
  • 因爲 myisam不支持外鍵, 因此若是用默認引擎建立外鍵的話會失敗
  • 若是不強調程序的質量和穩定性健壯性的話, 就能夠不用外鍵, 由於外鍵自己會帶來一些問題和複雜性 .
  • 關於存儲引擎, 能夠參考https://www.cnblogs.com/ldj3/p/9197485.html 關於靜態表/動態表/壓縮表 , 參考: https://www.cnblogs.com/champaign/p/3422377.html 在mariadb中, 用 Xtradb來代替了innodb. 所以, 也就不要 過度地追擊/糾纏 使用什麼 存儲引擎了, 其實對通常 數據流量不大的應用, 你可能體會不到它們只見的區別的.

在mysql和c語言中的 整數和 無符號整數的區別?

對於 a unsigned int ; a=1; b unsinged int; b=2: select a-b 的時候, 和 print "a-b: %d ", a-b, 和 print "a-b : %u" , a-b 都會獲得 -1, 或 整數的最大值:

  • 由於對於 FFFF FFFF. 來講, 能夠是有符號數 -1 , 也能夠是 無符號數的 整數的最大值. 由於, 若是是 有符號數, 那麼, 最高位表明的是 符號位, 若是是 0 則表示是正數, 1表示的是負數, 若是是負數, 那麼負數的值(絕對值)則是 剩餘的部分 取反+1. 因此是 -1 若是是無符號數, 則表示 整數的最大值. 參考: https://www.cnblogs.com/champaign/p/3422377.html
  • 因此 , 在 設置mysql的整數時, 要注意使用 unsigned可能帶來的問題. (並非不使用, 好比對於 primary key)一般仍是使用unsigned的.
  • 對mysql的參數進行設置, 語法是, 使用 set 語句. 好比: set mysql_mode="NO_UNSIGNED_SUBTRACTION"
  • 好像: subtract 和 substract 就是中間 多一個 s或少一個s 都是能夠的.同樣的 ?
  • 注意, mysql 的 unsigned是一個字段類型 的修飾語, 所以 不能放在 字段類型 int的 前面, 而是要放在 後面的!

===============================

mariadb的默認存儲引擎再也不是: myisam, 而是 maria(後來叫 aria), 或者是 innodb. 這個和傳統的mysql數據存儲引擎有所不一樣 , 後者默認的是 myisam. 只是 mariadb的支持事物 的功能沒有默認開啓, 能夠經過語句來開啓: MariaDB默認的存儲引擎是Maria,不是MyISAM。Maria能夠支持事務,可是默認狀況下沒有打開事務支持,由於事務支持對性能會有影響。能夠經過如下語句,轉換爲支持事務的Maria引擎。ALTER TABLE tablename ENGINE=MARIA TRANSACTIONAL=1;

如何在mysql中調整 字段的順序?

::: 是經過 add語句, 或 modify語句/ change字句, 指定順序, 關鍵字是 兩個: first(放在第一位), after other_col是放在 另外一個字段的後面. : 可是要注意, 使用上面的三個字句時, 都要從新定義字段的 definition, 即便字段的屬性沒有改變! 能夠一次性的 用 update 語句 來更改 數據表的 多個字段的值, 只是 多個字段之間要加上 逗號. 好比: MariaDB [pjiao]> update pj_stud set account='loeng2084', passwd='123456' where name='long2084';

mysql中的字符串截取和長度問題?

  • length函數, 是計算字符所佔的 "存儲"長度, 字節長度: 所以, 數字/字母的length是1, 漢字等多字節的length是2, 或3;

  • char_length, 顧名思義是, 計算字符的個數(長度), 因此, 全部 的數字/字母/漢字等都是1.

  • 截取函數: left, right, substring(而mid, substr是 substring的別名是同樣的), substring的語法是 substrign(str, start_pos, length): start_pos能夠爲正, 也能夠爲負數. 從1開始數起. 好比:

//  去掉name字段 最後四個數字
MariaDB [pjiao]> update pj_stud set name=substr(name, 1, length(name)-4);
Query OK, 3 rows affected (0.39 sec)

==============================

php是一種 數據類型 爲"混合" 的語言, 前期, 主要是 函數庫(全局函數), 後期高版本纔有對象(並且 語言自己提供的內置對象都不是不少. ) 因此, php的使用主要仍是用函數. 所以, 函數的使用, 就是 "全局函數, 直接寫函數名(沒有對象, 沒有對象語法格式的 點, 或 箭頭, -> 等). 好比: array_keys函數, 就是直接寫 array_keys($arr, [[$val], [$strict true/false]]) 而不是使用$arr.array_keys(...)的方式.

一直很模糊, 數組的兩種基本類型, 一種是 索引數組, 一種是 關聯數組, 所謂的索引數組, 就是: 經常使用的/常說的, 直接寫的數組,直接規定 數組元素的數組. 這個就叫索引數組, 而關聯數組則是人爲規定 "鍵值""鍵名"的數組, 鍵值是用 "字符串" 來表示的! 數組是一個 內部 帶指針的 映射對. reset , arsort, key 等有不少對數組進行操做的 "全局"函數

==============================

在tabs的add 方法中, 要設置 href: 內容地址html文件. 使用 U方法, 如何傳遞 附加參數?

  1. 在任何地方, 任何狀況下, 都是可使用U 方法進行 附加參數傳遞的, 即便 不是 經過 action / submit 提交 按鈕等方法 提交的 , 也是能夠的!

  2. 附加參數的提交方法, 雖然能夠用 array的方法, 可是仍是推薦 用 /?name1=value1&name2=value2等的方法進行! 更簡單直接!

  3. 問題的成功與否, 關鍵在於 寫法, 字符串 是否添加了 引號!

  4. 要判斷 U 方法 的參數 是否 傳遞成功 , 能夠 在接受頁面, 用 input type="text" value="{:I('get.name1')}" 的方法 來顯示的查看. 而後 再將 input 改爲 type="hidden" 來傳遞隱含的/隱藏的 內容 信息!!!

$('ul#jslist>li').click(function(){
    var tit=this.innerHTML;

    var  para = 'teacher=' + tit + '&student=' + '{$student}' + '&class=' + '{$curClass}';  // 這個是 參數字符串,  它的寫法很重要! 
    //var  para = 'teacher=' + tit ;
    alert(para);


      tt.tabs('add',{
	title:tit,
	href:"{:U('pjcontent')}"+"/?"+para,   // 這個是tp在U 方法中 傳遞附加參數 的 最關鍵的一步 寫法. 在原來的地址(.../foo.html)後面, 是沒有 斜槓的! 因此 要拼接字符串: '/?', 而後加上用 & 鏈接的 參數字符串
	closable:true,
	cache: true,
     });
<tr>
	<td colspan="4">
	  <h5>意見及建議</h5>
	  <h5> 這裏是一個文字編輯工具欄</h5>
	  <textarea id="advice" rows="5" cols="100"></textarea>
	<input type="text" name="student" value="{:I('get.student')}">       // 這裏完了以後 , 改爲 input type="hidden".... 
	<input type="text" name="teacher" value="{:I('get.teacher')}">
	<input type="text" name="class" value="{:I('get.class')}">
	</td>
      </tr>

============================

關於 教師任課表和 教師得分表?

  1. 兩個表的前面幾個字段, 可能感受是 同樣的, 好比都有: id, name, class, course. 因此 , 是否能夠考慮 將這兩個表 合併成一個表 來 處理? 實際上, 是不能夠的, 由於任課表, 的一條記錄 , 多是 對應着 得分表中的 多個 學生的評教結果, 對應着多條 記錄, 二者是 一個 " 一對多" 的關係.

  2. 或者說, 即便你能夠合併在一塊兒, 也會 牽涉到 不一樣的多個用戶, 同時 查詢select 和 更新 update 同一條記錄, 這樣 會 形成 表的 行級鎖, 或表鎖. 直到前面那個用戶 的事務 被 commit 或 rollback.. 參考 https://www.cnblogs.com/Leo_wl/p/5320498.html https://blog.csdn.net/younglao/article/details/76570187 不能 在 同一條語句中 同時進行 更新 update和查詢操做. ... 關於加鎖, mysql的不一樣存儲引擎支持不一樣的 鎖, 表級鎖 table-level locking 和 行級鎖 row-level locking . 並且對查詢操做 加: 讀鎖, 對update 操做, 加 寫鎖, 這些鎖 都是 自動 隱含 添加的. https://www.cnblogs.com/zhanht/p/5431273.html

關於 用來存放 comment評論 內容的 字段類型 用 varchar 仍是 用 text? 很是好的透徹的一篇文章: https://www.cnblogs.com/gomysql/p/3615897.html

  • 能夠確定的說, 若是隻是用來存放 簡單的/簡短的 評論 的 話,(好比 最多 幾百個字, 2000~3000個字)的話, 通常用 varchar 是絕對沒有問題的!

  • 無論是varchar 仍是 text , 最終 決定 存放 個數的仍是 字節個數! 一個varchar類型的字段最多可以存放的漢字個數, 最終仍是由 mysql的 一行 one row 的字節長度來決定的: 一行能保存的 最長字節是 65535個字節, 即一條記錄中 , 全部字段 所佔的字節總數加起來就是65535. 所以varchar字段所能保存的最多漢字字數, 就是 (65535-1-1-2-(其餘字段所佔 的字節數)) / 漢字編碼字節單位數: 其中的1 是 一條記錄 開始存儲的位置不是從第一個字節, 而是從 第二個字節開始 存儲的; 第二1 表示的是 default null 字段所佔 的一個字節, 2是 一個 varchar字段須要 用(1個或) 2個字節 來存儲 varchar字段 實際究竟存放的多少個字節數. (其中 varchar(255) 須要用 1個字節來存放 , 大於255的須要用 2個字節來存放)

  • 而後就是 剩餘的 字節數 來除以 編碼數, 若是是 utf8編碼, 就除以3, 若是是 gbk/gb2312, 就除以 2.

  • 固然, 若是是varchar類型的 字段, (一般最少都是 2萬個utf8 編碼的漢字了, 由於 65535 -??? / 3 = 就是 2萬多個了) 內容超出了, 會自動的轉換成 text 類型的.

=====================

關於 vim快速編輯的 "文本對象" 參考: https://zhuanlan.zhihu.com/p/25999103

  • 把單詞/句子/段落看做是一個 "文本對象" 總體, 進行編輯.

  • 編輯的方法是 : 動做 + 範圍 + 對象: 你要做什麼操做+...

  • 如何快速選中 html的 某個標籤中的內容? <font color="red"> <b> 這裏最重要的 就是 這個 文本對象 指的是哪些? 它包含的是哪些東西? </b> </font> 包括: 單詞word(用 w表示) , 句子sentence( 用 s表示), 段落 paragraph(用p表示). 還有 各類成對括號的 "後括號" , 包括: ', ", ), ], }, >等. 還有一個 很是重要的 文本對象 , 就是標籤! 所謂 標籤 就是 : 只 html中的 元素標籤, 好比 <div> <p> <span> <a> <body> 以及 php中的 標籤 <php...> 等標籤. 全部的 這些 標籤 都用 一個 字母 "t" 來表示 , 這裏的t表示 : tag 的意思!

所以, 要 快速 的選中 某個 html標籤中的 內容 : vit, 刪除 標籤中的 內容: dit, 注意 , 這些操做 不包括 標籤中的 屬性 內容!

相關文章
相關標籤/搜索