1. 程式人生 > >關於Oracle sequence的cache的一點內容

關於Oracle sequence的cache的一點內容


www.diy567.com累了,去上面休息一下下,QQ空間,美文,非主流,網路日記,搞笑簡訊,祝福簡訊,熱門簡訊,有意思啊

這幾天做了一些drag&drop操作方面的工作,在這裡把一些注意事項記錄下來,算是給自己備個忘,也給需要做類似工作的人留個樹陰。這裡要討論的drag&drop是指使用IE提供的內建機制,而不是使用滑鼠模擬的那種"假"drag&drop,比如移動一個div或span的效果那種。

要實現和控制drag&drop操作,那麼首先第一點要弄清楚的是,到底哪些元素是可以在Web上被drag的?實際上IE預設給我們並讓我們drag的元素並不多,它們是:圖片

選中的文字(包括頁面文字和文字控制元件(input, textarea)中的文字)和連線(普通連線和錨點)。除此之外,別的Web元素預設都不支援drag操作(在這些元素上面drag其實就是選擇操作了),所以要實現對元素預設的drag&drop控制,只能選這3類元素來操作。
接下來,那麼哪些元素又是可以接受drop操作呢?任何頁面上的可見元素都是可以接受drop操作的,而它們之間的不同只是在於預設的drop事件不一樣。比如,文字控制元件(input, textarea)的預設drop事件就是獲取drag操作傳過來的文字內容;iframe元素的預設drop操作是到航道drag操作傳過來的URL地址。當然絕大多數的Web元素的預設是操作是do nothing,什麼也不做。

那麼當進行drag&drop操作時,有那些是可控制和定製的內容呢?這裡關於drag&drop提供了以下一些事件(我們把它們分為作用於來源物件
目的物件來分別討論),先討論主要作用於來源物件的事件:
·ondrag —— 在整個從drag動作開始,直道drop動作結束的過程中,都會觸發的一個事件。
·ondragstart —— 在drag動作開始時,在來源物件上觸發的一個事件。
·ondragend —— 在drop動作結束的時候,在來源物件上出發的一個事件。

而主要做要在目的物件上的事件:
·ondragenter —— 在drag動作進入某一有效目的元素時,在該目的元素上觸發的一個事件。
·ondragover —— 在drag動作進入某一有效目的元素後,在該目的元素上觸發的一個事件。
·ondragleave —— 在drag動作離開某一有效目的元素時,在該目的元素上觸發的一個事件。
·ondrop —— 在任何有效目的元素上進行drop操作時,在該目的元素上觸發的一個事件。

這裡的來源和目的的劃分不是絕對的,比如ondragover事件,在drag操作過程中,如果滑鼠進入了來源物件
中,同樣的也會觸發這個事件。這些事件觸發的順序是:來源物件 --> ondragstart --> ondrag --> ondragend;目的物件 --> ondragenter --> ondragover --> ( ondragleave| ondrap )。由於是分別在同一個物件上觸發的事件,所以這個順序很簡單。那麼對於一個完整的從來源物件到目的物件的drag&drop操作來說,事件的觸發序列又是怎樣呢?如果src表示來源物件,des表示目的物件,那麼事件觸發序列為:

src:ondragstart --> src:ondrag --> des:ondragenter --> des:ondragover --> (des:ondragleave | des:ondrop )--> src:ondragend.

示例為:
Drag Source Drop Destination
// 如果alert視窗不響應滑鼠點選可以使用鍵盤的space鍵來確定視窗

<Aonmouseover="status=this.innerText;returntrue;"ondragend="alert('src:on'+event.type)"onclick="returnfalse;">DragSource</A>
<SPANondrop="alert('des:on'+event.type)"ondragleave="alert('des:on'+event.type)">DropDestination</SPAN>


瞭解了事件觸發順序後,定製drag&drop過程中滑鼠的游標形狀也是非常重要的一個內容。因為使用者的drag&drop的整個過程都需要靠滑鼠游標的形狀指導其進行操作,如果不能實時的調整游標為適合的型狀,drag&drop操作對使用者來說將無異於朦眼尋物。IE提供了用來控制的drag&drop過程中游標形狀的兩個屬性,它們是:effectAllowed和dropEffect。

其屬性分別為:
·effectAllowed:copy, link, move, copyLink, copyMove, all,none & uninitialized.
·dropEffect: copy, link, move, none.

前者effectAllowed是用來控制允許drag&drop操作型別的,所以這裡的effect不是顯示的"效果",而是是否可以執行的"操作",並且該屬性只能在ondragstart事件中進行初始化,之後再對其賦值將無效。當然如果只使用effectAllowed屬性,就已經可以達到控制游標形狀的作用了。只是effectAllowed屬性在處理複合操作時,比如copyLink, copyMove和all,會預設顯示靠前那個操作型別的滑鼠型別。也就是說如果effectAllowed是copyMove,那麼這是滑鼠游標就是copy形狀。這下就知道為什麼還要弄個dropEffect屬性了吧?不過這個dropEffect屬性中指定的effect,只能是之前effectAllowed允許的操作類型範圍中的值,否則沒有效果(顯示no-drop滑鼠游標)。

示例為:
Drag SourceDrop Destination

<Aondragstart="event.dataTransfer.effectAllowed='copyMove';event.dataTransfer.dropEffect='move'"onmouseover="status=this.innerText;returntrue;"ondragover="event.dataTransfer.dropEffect='move';event.returnValue=false;event.cancelBubble=true;"onclick="returnfalse;">DragSource</A>
<SPANondragover="event.dataTransfer.dropEffect='copy';event.returnValue=false;event.cancelBubble=true;">DropDestination</SPAN>


檢視程式碼時注意,你會發現在src和des的物件元素中,在ondragover事件裡除了對dropEffect賦以適當的值外,還有兩句話:

event.returnValue=false;
event.cancelBubble
=true;


只是由於頁面元素在接受dragover的時候,本身都有其預設的滑鼠游標顯示型狀,所以為了讓使用者自定義的滑鼠游標生效,就需要使事件event的returenValue為false值並停止當事件的冒泡(event.cancelBubble=true)。

到目前為止,一個完整的drag&drop過程就差資料傳遞了,其實忙活了半天,這才是藏在所有互動操作和顯示效果下面最重要的步驟。這個過程需要藉助於IE提供的DHTML Data Transfer物件來完成,在window物件的屬性event物件中,分別有兩個Data Transfer物件各自的一個例項:一個叫dataTransfer,另一個叫clipboardData。這兩個物件例項的行為非常相似,但又有一些區別,clipboardData顧名思義,它使用作業系統的剪貼簿來存取資料,並有3個方法;而dataTransfer通過操作一個自己的內部剪貼簿來存取資料(每次ondragend事件觸發後就自動清空了),除了有和clipboardData相同的3個方法外,還有兩個屬性(就是前面介紹的那兩個effectAllowed和dropEffect)。

我們這裡不對clipboardData作更多的討論,繼續來看dataTransfer物件。它包含3個方法,它們是:setData(sDataFormat, sText), getData(sDataFormat)和clearData([sDataFormat])。它們更詳細的使用和引數請參閱MSDN,這裡我只用它們來實現drag&drop的資料傳遞。

示例為:
Drag SourceDrag Source

<Aondragstart="event.dataTransfer.effectAllowed='copyMove';event.dataTransfer.dropEffect='move';event.dataTransfer.setData('TEXT',this.innerText);"onmouseover="status=this.innerText;returntrue;"ondragover="event.dataTransfer.dropEffect='move';event.returnValue=false;event.cancelBubble=true;"onclick="returnfalse;">DragSource</A>
<SPANondrop="this.innerText=event.dataTransfer.getData('TEXT');this.style.color='red';"ondragover="event.dataTransfer.dropEffect='copy';event.returnValue=false;event.cancelBubble=true;">DropDestination</SPAN>


其實很簡單,就是在src的ondragstart中,呼叫event.dataTransfer.setData('TEXT', this.innerText),然後再des的ondrop事件中,呼叫this.innerText = event.dataTransfer.getData('TEXT')就行了。

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

Window.event
DHTML Data Transfer物件: Window.event.dataTransfer

操作一個自己的內部剪貼簿來存取資料 (每次ondragend事件觸發後就自動清空了)
屬性
effectAllowed
值:copy, link, move, copyLink, copyMove, all, none & uninitialized
用來控制允許drag&drop操作型別的, 所以這裡的effect不是顯示的"效果",而是是否可以執行的"操作", 並且該屬性只能在ondragstart事件中進行初始化,之後再對其賦值將無效
dropEffect
值:copy, link, move, none
dropEffect屬性中指定的effect, 只能是之前effectAllowed允許的操作類型範圍中的值, 否則沒有效果(顯示no-drop滑鼠游標)
方法
setData(sDataFormat, sText)
getData(sDataFormat)
clearData([sDataFormat])
DHTML Data Transfer物件: Window.event.clipboardData
使用作業系統的剪貼簿來存取資料
屬性
effectAllowed
dropEffect
方法
setData(sDataFormat, sText)
getData(sDataFormat)
clearData([sDataFormat])

相關推薦

關於Oracle sequence的cache的一點內容

www.diy567.com累了,去上面休息一下下,QQ空間,美文,非主流,網路日記,搞笑簡訊,祝福簡訊,熱門簡訊,有意思啊 這幾天做了一些drag&drop操作方面的工作,在這裡把一些注意事項記錄下來,算是給自己備個忘,也給需要做類似工作的人留個樹陰。這

關於oracle一點備忘

oracle 存儲過程數據庫無法回避的就是處理數據情景:發票信息,很多公司員工在進行交易的時候,填寫的發票信息都是一樣的,所以公司員工往往想調用統一的發票信息,公司會計登錄系統可以填寫通用發票信息,為了生成訂單簡單,發票需要和員工號碼綁定,所以發票的表裏想要復制一份員工號為會計的發票信息,改動其中的員工號,發

oracle基本查詢內容整理

image 整理 dual 年收入 記錄 字典 mage user bubuko 清屏 host cls; 查看當前用戶 show user ; 當前用戶下的表 select * from tab; tab數據字典 desc emp; 查詢所有員工的信息 selec

提取oracle資料庫HTML內容轉換成正文格式

提取oracle資料庫HTML內容轉換成正文格式(去標籤)在更新到同表的TZNR # -*- coding:utf-8 -*- import cx_Oracle from bs4 import BeautifulSoup conn = cx_Oracle.connect('使用者名稱', '

GitHub相關的一點內容

今天寫程式碼時遇到個問題,也是以前經常遇到的問題:當我們為了實現功能寫了一個程式碼A,過了幾天發現有一個程式碼B可能更合適,但是又不能確定引入到自己的專案裡會不會導致出問題。 假如我最終發現程式碼B不合適,但是此時我已經做了很多很多的改動,為了重新使用程式碼A,又需要將自己

Oracle-01-學習內容&安裝遇到的問題記錄

本次內容 1.學會安裝 2.學會解除安裝 3.理解關係型資料庫 4.瞭解Oracle的版本,Oracle 9i,Oracle 10g,Oracle 11g 5.為什麼要學習SQL語句 6.SQL語句

Oracle入門之對表內容的dml操作

數據 表的管理 back -- tex 宋體 位置 表達式 wsh oracle表的管理--添加數據 使用insert語句向表中插入數據 插入數據基本語法: insert into table[(column [,column...])] values(value [,va

Oracle中如何查詢CLOB字段類型的內容

查詢 lob dbm -s 案例 類型 數據 ear 使用 語法:select * from table_name where dbms_lob.instr(字段名(clod類型),‘查詢條件‘,1,1) > 0; 語法解釋:在Oracle中,可以使用inst

伸手一點法杖的內容出現在了隊伍頻道裏

f2c ef6 bd09 eee ffd bad deb e30 d3d http://baobao.baidu.com/article/04c03fbf6d13041dcd5fa60c56821a4e.html http://baobao.baidu.com/artic

ORACLE高級部分內容

重復 區別 強行 struts2 設置 loop sel nag ret 1.pl/sql基本語句 DECLARE             BEGIN END; / 循環語句 DECLARE   I NUMBER(2):=1;             BEGIN   WH

制作批處理工具,將oracle數據庫中的內容導出到csv中

users rom sql arp oracle數據庫 feed clas sharp 生成 新建一個txt文件 內容如下 @echo off sqlplus ABC/ABC@ABC @C:\Users\Administrator\De

Oracle案例02——ORA-12034: "SCOTT"."USER_TABLE" 上的實體化視圖日誌比上次刷新後的內容

ade rom ddl success win dia char owin oss 最近同事在交接工作時,發現有幾個schedule job沒有執行成功,我這邊給看了下,其中一個是由於數據庫遷移,調用dblink的host主機IP在tnsnames中沒有變更導致,還有一個是

Oracle數據庫基本操作(三) —— DQL相關內容說明及應用

保留 group gpo 個數字 轉義字符 ike 關鍵字 其他 單行函數   本文所使用的查詢表來源於oracle數據中scott用戶中的emp員工表和dept部門表。 一、基本語法   SQL語句的編寫順序: p.p1 { margin: 0.0px 0.0px 0.0

oracle 如何將一個字段內容拆分多行顯示

eve 內容 fun regex sel 字符 小寫 位置 odi 例子: select regexp_substr(‘1,2,3,4,5‘, ‘[^,]+‘, 1, level)from dualconnect by level <= regexp_count(‘1

Oracle子查詢相關內容(包含TOP-N查詢和分頁查詢)

職位 oracle子查詢 員工 having 信息 不同 group 最大 mount 本節介紹Oracle子查詢的相關內容: 實例用到的數據為oracle中scott用戶下的emp員工表,dept部門表,數據如下: 一、子查詢 1、概念:嵌入在一個查詢中的另一個

oracle數據庫內容整理

tab 連接 oracle數據 rom dba 查看 用戶 修改 如果 一,用戶的創建,刪除,修改: 創建用戶 語法:create user 用戶名 identified by 密碼, 註意:在Oracle中只有管理員或具有管理員權限的人才能創建和修改。新創建的用戶是沒有任

每天懂一點系列之ORACLE(20181106)

目錄   一、Oracle客戶端工具: 二、Oracle資料庫物件型別 三、可用的資料型別 四、刪除和截斷表 五、建立和使用臨時表 一、Oracle客戶端工具: SQL*Plus SQL Developer PLSQL Dev

Oracle儲存過程基礎內容

1 基本語法 1.1 無參無變數 create or replace procedure firstPro as begin dbms_output.put_line('hello word, my name is stored procedure'); end;

oracle查詢表修改記錄以及被修改內容

查詢該表近段時間修改的記錄: SELECT 被修改表字段,VERSIONS_STARTTIME,VERSIONS_ENDTIME,VERSIONS_OPERATION  FROM 表 VERSIONS BETWEEN TIMESTAMP MINVALUE AND MAXVALUE

Oracle 儲存過程中傳送郵件,並支援使用者驗證 中文標題和內容

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!