Javascript 用DHTML做控制台更好的方法是什么?
我想找到一种更好的方法将控制台消息输出到HTML页面。这种方法似乎很慢Javascript 用DHTML做控制台更好的方法是什么?,javascript,html,dom,Javascript,Html,Dom,我想找到一种更好的方法将控制台消息输出到HTML页面。这种方法似乎很慢 <html> <title>Logging test</title> <head> <SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript"> <!-- function log(s) { if(!log.start) { var date = new Date(); l
<html>
<title>Logging test</title>
<head>
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
function log(s) {
if(!log.start) {
var date = new Date();
log.count = 0;
_log("0", "log() started at " + date);
log.start = date.valueOf();
}
_log(new Date().valueOf() - log.start, s);
}
function _log(header, s) {
var logMessages = document.getElementById("logMessages");
if(!logMessages) {
alert(logMessages);
return;
}
var message = document.createElement("div");
message.className = "logMessage";
var content = "";
content += "<span class=\"time\">" + header + "</span>";
content += "<span class=\"line\">" + (log.count++) + "</span>";
content += "<span class=\"level\">" + "" + "</span>";
content += "<span class=\"msg\">" + s.replace(/ /g, " ").replace(/\n/g, "<BR />") + "</span>";
message.innerHTML = content;
logMessages.appendChild(message);
setTimeout(function(){message.scrollIntoView(true)},1);
}
function main(e) {
if(window.confirm("Would you like to display logging?")) {
for(var i=0;i<5000;i++) {
log("Hello World " + i);
}
}
}
//-->
</SCRIPT>
<style>
.logMessage {
border-bottom: 1px black solid;
font-size: 8pt;
font-family: Lucida Console;
}
.logMessage .line, .logMessage .time {
width: 30px;
}
.logMessage .level {
display: none;
}
.logMessage .msg {
}
#logMessages {
overflow: auto;
}
</style>
</head>
<body onload="main()">
<div id="logMessages"></div>
</body>
</html>
测井试验
.logMessage{
边框底部:1px黑色实心;
字号:8pt;
字体系列:Lucida控制台;
}
.logMessage.line、.logMessage.time{
宽度:30px;
}
.logMessage.level{
显示:无;
}
.logMessage.msg{
}
#日志信息{
溢出:自动;
}
这里的用例是什么?对于调试,Firebug是我所能想象到的唯一需要的。对于您的具体情况,如果您真的希望转到页面上,并发现您当前的解决方案太慢,我肯定会用更高效的方法替换所有字符串连接(将字符串推入数组并在最后连接它们,或者使用StringBuffer将其抽象出来),正如Javascript中的字符串操作一样(我看着你,Redmond!)这里的用例是什么?对于调试,Firebug是我所能想象到的唯一需要的。对于您的具体情况,如果您真的希望转到页面上,并发现您当前的解决方案太慢,我肯定会用更高效的方法替换所有字符串连接(将字符串推入数组并在最后连接它们,或者使用StringBuffer将其抽象出来),正如Javascript中的字符串操作一样(我看着你,Redmond!)Firebug很好,因为你正在使用Firefox测试你的工作(假设你想记录消息以进行调试)。如果你正在测试其他浏览器,你也可以使用类似Firebug在其他浏览器中的功能。这样你就不必重新发明轮子了。Firebug的好处在于你使用Firefox来测试你的工作(假设你想记录消息以进行调试)。如果你正在测试其他浏览器,你也可以使用类似Firebug在其他浏览器中的功能。这样,您就不必重新发明轮子。速度对我来说似乎很好,但滚动可能会导致一些问题,因为大量日志很快就会发生。我看到的唯一问题是,在FF中,日志消息的呈现在大约2300后消失(之后显示为空白),尽管IE和chrome呈现得很好。速度对我来说似乎很好,尽管滚动可能会导致一些问题,大量日志很快发生。我看到的唯一问题是,在FF中,日志消息的呈现在大约2300年后消失(之后显示为空白),尽管IE和chrome呈现得很好。出于好奇,我修改了他的代码以使用数组方法。快10倍!(原始代码在Chrome上花费了11秒。数组方法花费了略少于2秒的时间)。是的。我出于好奇修改了他的代码以使用数组方法。快10倍!(原始代码在Chrome上花费了11秒。数组方法花费了略少于2秒的时间)。是的。让世界变得不同。