Javascript 我可以缩短这个脚本吗?(更新数据库表并刷新)

Javascript 我可以缩短这个脚本吗?(更新数据库表并刷新),javascript,php,jquery,mysql,ajax,Javascript,Php,Jquery,Mysql,Ajax,我真的很想知道是否有一个更短的替代方法来编写这段代码。我曾试图将其缩短为2或1个函数,但失败惨重。我正在寻求建设性的反馈 <script type="text/javascript" src="jquery.min.js"></script> <script type="text/javascript"> function f_solar_1() { $.get("f_solar_1.php"); return false; } </sc

我真的很想知道是否有一个更短的替代方法来编写这段代码。我曾试图将其缩短为2或1个函数,但失败惨重。我正在寻求建设性的反馈

<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
function f_solar_1() {
    $.get("f_solar_1.php");
    return false;
}
</script>

<script type="text/javascript">
function refresh(){
location.reload(true);}
</script>

<script type="text/javascript">
function both(){
    f_solar_1()
    setTimeout(refresh, 5);
    }
</script>

<a href="#" onclick="both();">Activate</a>
详情:

这段代码摘自我的php页面,该页面显示了我使用wamp的mysql数据库中的一个表

底部的激活文本应该更新该表上的变量,并通过f_solar_1.php文件进行更新

问题是反映数据库的表不会自动反映此更改

因此,我创建了一个重载函数来刷新页面,两个函数都用于在更新数据库后对刷新进行计时

我已经知道基本的html有一段时间了,但是今天早上我还不熟悉mysql、ajax和php,这是我尝试深入研究的内容

我的代码工作得很好,只是让我不知道是否可以在一个函数中完成同样的事情

提前谢谢你

更新:感谢Dat Pham为我指明了正确的方向

<script type="text/javascript">
function newfunc(){
$.get( "f_solar_1.php", function( data ) {
location.reload(true);
});}
</script>

<span onclick="newfunc();">newfunc</span>

该代码是一个功能的所有以及。。。在不引起刷新和php调用时间冲突的情况下。

让一个函数做所有事情被认为是不好的做法,函数应该做并且只做原子任务。您的代码很好,除了一些小问题:

ajax调用$.get和location.reload不应相互使用,因为这会破坏ajax调用的意义。您可以传递回调函数来处理来自后端服务器的数据,如 $.get f_solar_1.php,函数数据{ 已执行警报加载; }; 将所有脚本标记与所有函数声明合并为1
关于,

例如,您是否通过后端phpmyadmin检查了数据库,并验证了是否正在进行更改,即使它没有显示出来

我想知道你的页面是否真的没有刷新,只是将要刷新。检查return false-它并不是真正应用于A链接,您必须将return false放在'both'函数中才能取消链接。但在花了一分钟阅读以下内容后,您可能不想这样做:


此外,我建议使用jquery添加事件监听器来触发函数调用,并从html标记中去掉onClick。如果您学会了如何在没有jquery的情况下完成这项工作,您将获得额外的奖励。快速阅读这篇文章

你的php代码在哪里外部php文件是一个直接的$sql脚本,用于更新mysql表上的一个变量以及围绕它的所有内容,例如语句准备和执行以及捕获。我的印象是,代码无法改进,所以我没有包括它,因为它只是服务器端。我质疑效率的脚本是我最初发布的脚本。我的页面按照我的预期工作,页面的行为不需要修复。代码本身就是一种低效的感觉,它有3个函数和一个单独的php文件,只需点击一个按钮即可立即更新页面上显示的表。我只是想到了我必须创建的每个变量旁边的所有开/关开关,并将其乘以每个函数的3。我知道我可以用一个文本字段来简化,但我想知道这个方法是否可行。我已经彻底研究了您提供的两篇文章,并镜像了每个建议的脚本,可以让每个代码运行并执行我想要的操作,直到我用刷新脚本替换它们的功能。这让我相信,浏览器触发刷新的方式与更新mysql数据库表的php文件一致,而没有给它执行的时间。如果是这种情况,我的延迟重新加载功能是必要的,就像我有它,除非有一个更干净的方法来实现同样的效果,我不知道,在这种情况下,我希望学习今天是我编程的第二天除了html在记事本。如果你正在想象一个jquery免费的方法,请分享。如果你把语言命名为alternitive并告诉我这是可能的,我会找出脚本部分。感谢您的反馈。尽管您建议不要混合使用ajax和location。重新加载。。。结果很漂亮!!!我现在有一种感觉,我在这方面是新手,所以这里没有可信度,即立即刷新页面Intrupts调用php页面更新mysql数据库表,这就是为什么我不能将所有内容都作为一个函数包含。你的建议解决了这个问题。我知道有一个更有效的方法!我的下一步是研究回调函数的潜力。非常感谢。