这是ajax与php-mysql-javascript的正确使用吗?
我是新手,到目前为止我只是使用html表单,点击提交按钮,页面被刷新,数据被发送到服务器mySQL。但我了解到Ajax是开发人员的梦想,他们说,因为您可以: 从web服务器读取数据-页面加载后 在不重新加载网页的情况下更新网页 在后台将数据发送到web服务器 所以我做了一个简单的例子。假设我已经设置了sqlConnection.php 让输入=document.getElementByIdinputField; document.getElementByIdsubmitBtn.addEventListenerclick,函数{ ifinput.value=={ 空字段; }否则{ $document.readyfunction{ $.ajax{ url:'insert.php', 方法:“POST”, 数据类型:“文本”, 数据:{comment:input.value}, 成功:功能{ input.value=; } }; }; } }; 函数选择问题{ 让数据=真; $comments.loadselect.php; } 设置时间间隔,3000个问题; Ajax文本 提交 假设您的代码位于main.js中,您不需要$document.ready,因为在代码的底部,您的代码只会在一切就绪后运行。更不用说它放错地方了 起初我以为你用错了.load,因为它是.on'load'的缩写。但事实证明,在jQuery3.0中,他们添加了一个名为.load的函数。这是愚蠢的,会引起很多混乱,但我离题了,使用或从服务器获取东西 每隔一段时间访问服务器并不一定不好,这叫做轮询,这就是多年来互联网进行全双工通信的方式。当您过于频繁地进行轮询,或者想要更新太多数据,或者有太多用户同时进行轮询时,就会出现问题。多少是太多取决于服务器运行的机器。WebSocket无疑是一个更好的选择,但配置起来要复杂一些 我冒昧地重新编写了一些东西,因为如果您使用jquery,也可以使用jquery这是ajax与php-mysql-javascript的正确使用吗?,javascript,php,jquery,sql,ajax,Javascript,Php,Jquery,Sql,Ajax,我是新手,到目前为止我只是使用html表单,点击提交按钮,页面被刷新,数据被发送到服务器mySQL。但我了解到Ajax是开发人员的梦想,他们说,因为您可以: 从web服务器读取数据-页面加载后 在不重新加载网页的情况下更新网页 在后台将数据发送到web服务器 所以我做了一个简单的例子。假设我已经设置了sqlConnection.php 让输入=document.getElementByIdinputField; document.getElementByIdsubmitBtn.addEvent
let $input = $('#inputField');
$('#submitBtn').on('click', function(e) {
e.preventDefault(); //assuming this is in a <form>, default action is to reload the page
if ($input.val()) {
$.post('insert.php', { comment: $input.val() })
.done(function() {
$input.val('');
})
.fail(function(error) {
//error handling code
});
} else {
alert("empty field"); //alerts are annoying and thread blocking,
} //maybe use a different method to communicate with the user.
});
setInterval(function() {
$.get('select.php')
.done(function(select) {
//whatever you want to do with the response from this
})
.fail(function(error) {
//error handeling code
});
}, 3000);
这对服务器有害吗?是的,可能是。它可能需要大量内存、CPU和互联网带宽。如果有太多用户同时这么做,可能会导致服务器崩溃。您可以在insert.php调用完成后调用select.php一次。取决于您是否希望在不刷新页面的情况下查看其他人的插入内容?数据表有多大?每隔几秒钟下载整个表可能会很昂贵。@Kinglish这会将数据库查询从等式中删除,这可能是所有步骤中最优化的步骤,但不会改善带宽溢出或服务器请求/cpuetc@Kinglish更好的是,让AJAX调用只读取文件,因此,无需查找/运行PHP脚本。例如,竞争对手可能会支付相当小的僵尸网络费用,从而非常容易地完全破坏您的站点
<?php
$conn = new mysqli("configs and what not");
$statement = $conn->query("SELECT * FROM data");
$result = $statement->fetch_all(MYSQLI_ASSOC);
if (count($result) > 0) {
echo implode("", array_map(fn($row) => "<p>{$row["question"]}</p>", $result));
} else {
echo "No comments";
}
$conn->close();