Javascript執行個體教程(21) OLE Automation(2)

來源:互聯網
上載者:User
javascript|教程

使用javascript中的OLE Automation

2. 什麼是綁定

在你適用一個物件模型的屬性、方法和事件之前,你必需首先建立一個計劃性的引用給包含了你想適用的屬性、方法或者事件的類。你可以通過聲明一個局部物件變數以保留一個引用給這個對象來實現這個目的。然後,你要為局部變數指定一個對象的應用。

VB和VBScript使用CreateObject()函數,來實現在Jscript使用這個ActiveXObject()建構函式的時候為一個Automation對象允許並返回一個引用。

實際上,綁定是指Visual Basic代碼訪問在其它的應用程式物件的方法。當你從一個應用程式使用Automation來處理另外一個應用程式中對象的時候,你編寫Visaul Basic代碼的應用程式就是一個Automation控制器。這個你正在處理對象的應用程式是Automation伺服器。當一個Automation控制器建立一個指向由Automation伺服器提供對象的變數,Visual Basic 必需驗證對象是否存在以及使用對象的任何屬性和方法是正確指定的。這個驗證過程就所謂的”綁定”。有兩種Visual Basic程式開發人員使用的綁定類型要注意: late binding(遲綁定) 和 early binding(早綁定)。

遲綁定

遲綁定是發生在已耗用時間並且比早綁定要慢。在遲綁定Automation代碼中,Visual Basic在每次執行包括那個對象的行代碼時必需查詢對象以及它的方法和屬性。為了驗證這個對象以及它的方法和屬性是否正確指定,Visual Basic 必需利用作業系統和支援對象的應用來檢查。下面看看一段Visual Basic 代碼:

Dim wdApp As Object

Set wdApp = CreateObject("Word.Application")

這個wdApp變數被定義為一般類型的對象。當這個變數被聲明了,Visual Basic 並不知道它是屬於什麼類型的對象,所以你必須要為這個對象留出一定量的記憶體。既然特定對象引用是被指定到普通變數的,所以應用程式沒有辦法知道對象的介面是由什麼組成的。只有在已耗用時間,應用程式才綁定到使用者介面上。因此,不管你是什麼時候引用新的對象,Visual Baisc必須檢查系統註冊以獲得對象的資訊。

早綁定

早綁定是一個解決慢Automation效能的好的解決方案。早綁定發生在編譯的時候而不是在啟動並執行時候,所以如果你的代碼是在編譯階段儲存的,在代碼運行之前已經綁定結束了。當使用早綁定,Visual Basic 不需要連續驗證對象資訊,而是在應用程式執行的過程中使用對象。

另外,不是所有的Automation伺服器都支援早綁定。這個Automation伺服器必須支援一個類型庫,這個類型庫包含了關於伺服器對象、方法和屬性的資訊。為了利用早綁定,你必須為Automation伺服器的類型庫設定一個引用。Visual Basic裝載類型庫到記憶體中,這使得它可以識別這些對象並且在代碼編譯的時候綁定它們。以下的程式碼片段顯示了怎樣為對象建立一個早綁定介面:

Dim wdApp As Word.Application

Set wdApp = CreateObject("Word.Application")



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.