building html/php vs DOM/javascript
building html/php vs DOM/javascript
我有一个ajax调用。使用下面的while循环返回responseText。一切工作正常,除了嵌入的javascript没有加载。我的解决方案是使用javascript在客户端构建尽可能多的html。在客户机上构建xhtml最简单的方法是什么?最简单的方法是createElement('div')并单独添加所有这些元素。这就是我目前正在做的。但是因为下面的代码失败了,我想知道这是否是一个好的解决方案。更重要的是,有一个脚本,那里采取html,并将其转换为javascript,这将是理想的我猜。
while ($a = mysqli_fetch_assoc($query_return))
{
$date = date('M j 'a't g:i:s a', $a[time]);
echo "<div class='"Bb2b'"><img class='"a'" src='"p/$a[email].jpg'" alt='"'"/><a class='"a'" href='"javascript:void(0)'">$a[fname] posted <script type='"text/javascript'">v0($a[time],$time)</script></a><br/><p class='"c'">$a[message]</p></div>";
}
javascript在动态更改的. innerhtml中不执行是正确的行为-您只需将其插入页面DOM。您需要使用eval()手动执行这样的片段。然而,您说要在客户端构建xhtml—这似乎与您正在做的事情完全相反(您在PHP中生成了大量HTML)。
我建议你使用JSON来传输数据-在PHP中,你可以直接使用json_encode()函数将变量转换为JSON字符串。这样你的代码看起来就像
while ($a = mysqli_fetch_assoc($query_return))
{
$a[date] = date('M j 'a't g:i:s a', $a[time]);
echo json_encode($a);
}
在客户端,您可以使用JQuery(或任何其他体面的AJAX库)将字符串直接解析为JS对象。这样做的好处是可以减少传输的数据量,并消除使用eval时可能出现的许多安全问题。
eval不能作为临时修复…作为一个更复杂的临时修复…我将使用下面的代码片段
将html加载到dom中// HTML string
var s = 'responseHTML';
var div = document.createElement('div');
div.innerHTML = s;
var elements = div.childNodes;
之后我将发送数据并在DOM中构建它作为最终解决方案,以减少发送html结构的开销。
相关文章:
- Windows形成web浏览器控件和Javascript更改的DOM
- 将DOM节点值与字符串Javascript进行比较
- 用于操纵DOM API的Javascript设计模式
- 使用DOM javascript包含文本和图片的按钮
- 使用静态 HTML 或静态 DOM Javascript 设计页面
- DOM Javascript正在删除子节点
- 如何确定是否在父元素的开始或结束存在文本?HTML DOM &JavaScript
- 如何停止DOM javascript事件处理程序
- PHP动态加载的数据在DOM / JavaScript中无法识别
- 通过DOM javascript操作添加HTML ID
- 测试多个变量的条件?Dom Javascript
- 重载页面不改变DOM - Javascript
- building html/php vs DOM/javascript
- 在XUL中使用DOM JavaScript动态创建复选框
- Chrome DOM/JavaScript Reference
- 将元素放置在DOM JavaScript中的特定位置
- 一个很好的DOM/Javascript参考网站
- DOM Javascript:无法在PHP中找到输入
- HTML DOM Javascript not working?
- Documentation for the DOM, JavaScript & CSS