指令碼動態產生VML_VML相關

來源:互聯網
上載者:User
我們編寫 VML 很重要的就是要和 資料庫結合,如果和資料庫結合了,讀資料和把資料轉換成 VML 變成了兩部分。如果直接使用 ASP 產生 包含很多 VML 的頁面,一旦資料量多了,整個頁面就變得很龐大,下載速度慢了,IE解釋代碼的速度也慢了,所以用指令碼動態產生 VML 變得非常重要了。

用 VML 畫一個,可以更明確上面的意義:


前面的圖文簡單的說就是:使用一個 Iframe 做後台,前台用指令碼產生。也許擔心,後台已經完成了,但前台還沒有初始化的情況,你可以放心,因為讀資料的過程肯定相對要慢,如果擔心資料量少,只要你把 指令碼放在 Body 前面,Iframe 放在 Body 的最後面,就不會產生同步錯誤的問題了。
現在來具體講講如何用指令碼動態產生 VML 。其實這和用指令碼動態產生 HTML 是一樣的過程。



動態建立VML









相應的在 readData.asp 裡面:



上面的顏色採用 HomeSite 4.5.2風格

看完上面的,是否對這種模式有所理解呢?下面談談動態產生 VML 所要注意的一些問題,先說說 document 的 createElement 方法。IE版本不同, createElement 的使用也有所區別,在早期版本的IE, createElement 只能建立 Select 裡面 OPTION ,比如說 var newOption=document.createElement("OPTION"); 但在 IE5.0 以後,createElement 可以建立所有的對象,使用的方式是 var newElement=document.createElement(""); 注意到沒有,這裡的參數必須是個完成的 HTML 標籤,而不是 DIV,用這個方法的好處就是,可以用一個語句把新建立的對象描述清楚。insertBefore 方法很好用,它把新建立的對象插入到 最後。
我們一開始就有了 Group1 ,所有以後動態產生的 VML 直接插入到 Group1 的後面就可以了。曾經做了三個實驗,第一個是普通的,用ASP產生 VML 代碼;第二個是不用Iframe,在同一個頁面產生指令碼;第三個就是上面的例子,使用Iframe 產生指令碼。結果在大資料量的條件下,效率最高的是第三個,其次是第二個,第一個有明顯的慢的感覺。
接下來的一節,將講述VML最激動人心的功能,放大縮小!
  • 相關文章

    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.