在java中,我使用:
发送 30帧(30个字符串)for(Frame frame : frames) {
response.getWriter().write(frame.toString());
}
我在Ajax Post请求中获取它:
success: function (result) {
console.log(result);
document.getElementById('logs').innerHTML = '<br>' + result ;
}
HTML:
<div id="logs" class="text-center" style="margin-top: 25px;">
</div>
但是我把所有的行混合成了18行。好像<br>
无效。
如何在HTML的每一行中准确打印每个字符串?
答案 0 :(得分:0)
As&#34; Nick A&#34;在他的评论中提到,您应该将新结果附加到<div>
元素的内容而不是替换它。所以你的Ajax函数应该是这样的(=
替换为+=
):
success: function (result) {
console.log(result);
document.getElementById('logs').innerHTML += '<br/>' + result ;
}
修改强>
主要问题是您将所有数据附加到服务器上的结果中,而不放置任何分隔符,以便您可以在客户端上将它们分开。您还可以尝试在服务器端代码中添加<br/>
,如下所示:
for(Frame frame : frames) {
response.getWriter().write(frame.toString() + "<br/>");
}
然后在客户端使用原始的ajax函数。
答案 1 :(得分:0)
有两种选择。首先,您可以在Java方法中构建响应时添加换行符...
response.getWriter().write("<br />" + frame.toString());
或(取决于您是否需要预先添加或附加换行符)
response.getWriter().write(frame.toString() + "<br />");
其次,您可以使用Javascript分割响应(假设它们是换行符)并使用Html换行符重新加入...
document.getElementById('logs').innerHTML = '<br>' + result.split("\n").join("<br/>");
第二个选项取决于响应数据的格式,因此第一个选项可能是您最好的选择。