到目前为止,我已经看到了两种格式化从 MySQL 数据库检索的数据的方法。
两个代码的快速摘要: 当使用打开一个检索 MySQL 数据的 php 文件的 Ajax 函数调用时,是否应该处理同一 php 文件中的 MySQL 数据,还是在打开所述 php 文件的 Ajax 函数中处理从 php 文件返回的数据?
我认为第一种方法是我在教程中看到的最常见的方法,它看起来像这样......
PHP 文件
while ($row = mysqli_fetch_row($result)){
echo "<p class='group_name'>" . $row[0] . "</p>";
}
使用 AJAX 的文件
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState === 4 or xmlhttp.state === 200){
document.getElementById('container').innerHTML = xmlhttp.responseText;
}
}
或者这是另一种方式。它首先用ajax将数据发送到文件,使用split()字符串方法,循环遍历,再次使用split方法,然后用HTML格式化。
第二个 PHP 文件
$data = "";
while ($row = mysqli_fetch_row($result)){
$data .= $row[0] . "|" . $row[1] . "|" . $row[2] . "||"; // adding | and || to be split later
}
使用 AJAX 的第二个文件
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState === 4 or xmlhttp.state === 200){
var data = "";
var data_array = xmlhttp.responseText.split('||');
for(var row = 0; row < data_array.length ;row++){
var data_row = data_array[row].split('|'); // Taking each value in the array and splitting it again, this time by |
data = "<p class='group_name'>" + data_row[0] + "</p><span>" + data_row[1] +
"</span>"
}
}
}
哪种方法更好或更快?还是没关系?第二个首先发送仅包含数据的responseText,所以我认为它可能会加快速度?然后 HTML 格式在客户端完成。
或者有更好的方法吗?
最佳答案
格式化应该在客户端完成,这样您就可以为站点的不同项目/页面重用相同的代码,并且服务器应该返回 JSON 对象。
这还可以节省带宽(对于移动设备极其重要),例如,如果我们使用您的第一个解决方案并且有 100k 行,那么我们还将为每一行设置 HTML 格式,这是相当多的数据。
此外,这还允许您仅通过编辑页面来更改页面的设计,而无需触及服务器端代码上的任何内容。
关于PHP:有多少种使用 AJAX 格式化 MySQL 数据的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24357086/