gpt4 book ai didi

javascript - 在 JavaScript 中通过 ADODB 从 Access DB 构建 HTML 表

转载 作者:行者123 更新时间:2023-12-03 11:27:29 25 4
gpt4 key购买 nike

作为一名 JavaScript 菜鸟,我刚刚编写了一个小脚本,用于根据 Access 数据库中的数据构造一个表。但尽管数据只有 1720 行,建表却需要 30 秒。我怎样才能改善这个时间呢? (我只有 JavaScript,没有 PHP 等)

<html>
<body>
<script type="text/javascript">
function loadDB() {
var body = document.body,
tbl = document.createElement('table');
tbl.style.width='100px';
tbl.style.border = "1px solid black";
var connection = new ActiveXObject("ADODB.Connection");
var ConnString = "Data Source=S:/queries.accdb;;Provider=Microsoft.ACE.OLEDB.12.0;";
connection.open(ConnString);
var rs = new ActiveXObject("ADODB.Recordset");
rs.Open("SELECT * from tblPosterSager", connection);
rs.MoveFirst();
while (!rs.eof) {
var tr = tbl.insertRow();
var Team = tr.insertCell();
Team.appendChild(document.createTextNode(rs.fields("Team")));
Team.style.border = "1px solid black";
var Ktonr = tr.insertCell();
Ktonr.appendChild(document.createTextNode(rs.fields("Account")));
Ktonr.style.border = "1px solid black";
var Valuedate = tr.insertCell();
Valuedate.appendChild(document.createTextNode(rs.fields ("Valuedate")));
Valuedate.style.border = "1px solid black";
var Valuta = tr.insertCell();
Valuta.appendChild(document.createTextNode(rs.fields("Currency")));
Valuta.style.border = "1px solid black";
var Belob = tr.insertCell();
Belob.appendChild(document.createTextNode(rs.fields("Amount")));
Belob.style.border = "1px solid black";
var DC = tr.insertCell();
DC.appendChild(document.createTextNode(rs.fields("DC")));
DC.style.border = "1px solid black";
var Stjerne = tr.insertCell();
Stjerne.appendChild(document.createTextNode(rs.fields("Star")));
Stjerne.style.border = "1px solid black";
var Kommentar = tr.insertCell();
Kommentar.appendChild(document.createTextNode(rs.fields("Comment")));
Kommentar.style.border = "1px solid black";
rs.MoveNext();
}
rs.close();
connection.close();
body.appendChild(tbl);
}
</script>
</body>
</html>

最佳答案

作为一种解释性语言,Javascript 速度较慢,Access db 也较慢。为了获得准确的了解,您应该对应用程序的各个进程进行计时:在不创建 HTML 元素的情况下读取数据库(创建数据库并循环记录集)需要多长时间;创建tbl元素而不插入需要多长时间;插入body文档需要多长时间等等

但是,如果不进行测试,我不会惊讶地发现 tbl 元素的构建及其插入是两个最慢的过程;所以不要使用动态节点来构建它;您应该将新的 HTML 构建为纯文本,并使用分配 insideText 来插入它。这会导致 IE 之外的一些问题,因此请参阅 'innerText' works in IE, but not in Firefox有关此主题的更多信息。

关于javascript - 在 JavaScript 中通过 ADODB 从 Access DB 构建 HTML 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26860570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com