在jQuery中替代此脚本?

时间:2011-11-14 20:27:14

标签: javascript jquery

我使用以下脚本来获取remaining.php的内容。
缺点是有时它不起作用或显示文本有点慢。还有其他方法吗?

谢谢

$(document).ready(function(){
    $("#SubmitButton").click(function (){
        $('#remaining').load('remaining.php');
    });
});

4 个答案:

答案 0 :(得分:1)

如果“有时它不起作用或有点慢”,问题可能是你正在使用的服务器,而不是你的javascript代码。

您在这里向我们展示的javascript代码并没有真正做任何可能很慢的事情,它只会在提交按钮上绑定一个事件。但是,可能缓慢的是在发送remaining.php请求时等待Web服务器的回答

从那里,有数千个原因导致您的网络服务器速度变慢。也许你可以发布你的remaining.php文件的内容,这样我们就可以看到那里发生了什么。

答案 1 :(得分:1)

您可以直接将remaining.php的内容包含到初始标记中,但可以通过将display:none;样式应用于#remaining元素来隐藏它。然后,当单击按钮时,只需显示它:

$(function() {
    $('#SubmitButton').click(function () {
        $('#remaining').show();
    });
});

当然,如果您需要将一些参数传递给脚本,这些参数将取决于仅在单击按钮时已知的一些javascript变量,您将需要使用当前正在进行的AJAX。

答案 2 :(得分:0)

这不是jQuery的错,而是从服务器返回的速度。也许有更好的方法来处理它而不是获取整页?

例如,如果您的内容请求仅检索消息,则可以从服务器返回JSON并让jQuery处理数据:

$(document).ready(function(){
    $("#SubmitButton").click(function (){
        $.post('remaining.php',
               null,
               function(data) {
                   // do stuff with your JSON result
               });
    });
});

答案 3 :(得分:0)

当您使用.load()时,您正在向服务器发送请求以获取您的内容,这就是为什么它看起来很慢。我不确定为什么它有时不起作用,但我冒昧地猜测你可能在$(文件).ready fires之前点击$(“#SubmitButton”)。

根据您的实施情况,您可以重构您的应用程序,以便在页面上预先加载您要显示的文本。