doT的高階用法及loadData的使用

2021-09-27 05:14:22 字數 1351 閱讀 3800

本文出自apicloud官方論壇,

感謝論壇版主 gp3098的分享。

之前直接把模板寫在頁面底部的script標籤內的,但是現在不同。
使用了dot.js配合api的loaddata方法,整個頁面就是模板。
以前開啟frame或者window的時候一直不明白url和data怎麼配合,一直以為data只能載入到一些靜態的頁面,沒有其他用法。

學習了dot.js的一些高階用法,能夠更好的搭建多頁面程式。

在開啟新頁面的時候先通過dot渲染乙個頁面然後通過frame或者win的方法來載入html**。

//資料渲染到frame的內容區域//預設只渲染第一頁

function renderdata(currid, tag, page, size, sort, order)

//從檔案讀取兩個模板

var template = loadfile('widget://mall/components/goodslist_frame.html');

var template2 = loadfile('widget://mall/components/goodsitem.html');

// var template = loadfile('widget://mall/components/goods.html');

var def = ;

var tempfn = dot.template(template, undefined, def); //生成渲染模板的函式

api.cancelajax();

// console.warn(parseurl(param));//用來解析url,把json的url變成字串形式

ajaxtag1 = $api.get(domain + '/ajax/goodslist?' + parseurl(param), function(ret, err) );

}, 'json');

}複製**

這裡的loadfile是官方的api方法

有同步和非同步兩種,都進行封裝過,但感覺封裝得不夠好,只展現乙個同步,不然**不完整。

function loadfile(url) );

}複製**

還有官方的$api.get方法是不會返回tag用來取消ajax請求的

//json轉url引數

var parseurl = function(urlparam) ).join("&");

}複製**

模板1var template = loadfile('widget://mall/components/goodslist_frame.html');//對應的模板檔案在下面

複製**

}}}

複製**

模板 2 }}

socket例子及高階用法

使用sigalrm訊號為阻塞操作設定超時 可以處理connect和read等超時 include include include include include include include include include include define maxline 4096 typedef v...

on 的高階用法

針對自己處理機制中,不僅有on方法,還有根據on演變出來的live方法 1.7後去掉了 delegate方法等等。這些方法的底層實現部分 還是on方法,這是利用了on的另乙個事件機制委託的機制衍變而來的 委託機制 on events selector data handler eventobject...

高階程式設計師談Python eval的用法及注意事項

eval是python的乙個內建函式,這個函式的作用是,返回傳入字串的表示式的結果。想象一下變數賦值時,將等號右邊的表示式寫成字串的格式,將這個字串作為eval的引數,eval的返回值就是這個表示式的結果。python中eval函式的用法十分的靈活,但也十分危險,安全性是其最大的缺點。本文從靈活性和...