页面加载时更新模式对话框

时间:2014-02-27 21:15:27

标签: javascript jquery ajax coldfusion

我有一个用Cold Fusion编写的网站。其中一个页面是我的主搜索区域,其中有一个提交到results.cfm页面的表单。在results.cfm上,我有几个cfinclude模板语句,它们调用每个文件来构建用户搜索的页面。

根据用户搜索的内容,页面有时需要一段时间才能加载。我想显示一个模态对话框,指示搜索的进度。结果页面上的每个包含的模板都作为第一行

<cfset session.progressStatus = "Loading [whatever it's loading]">

在我的搜索表单上,我有它,以便当用户提交表单时,我正在显示模式对话框。一切正常,但是在显示对话框之后,我正在使用下面的代码尝试对脚本进行ajax调用,该脚本只是给我session.progressStatus变量的值。我认为通过这种方式做事,因为页面加载对话框将继续显示并将更新它的文本以反映当前操作。然而,这种情况并非如此。对话框文本不会更改。真正奇怪的是,当我单击搜索并显示对话框时,如果我按下转义键,对话框文本会相应地更新,但页面会停止加载。

        progressTimer = setInterval(function(){
        $.get("ajax/ajax_get_progress.cfm", { type:"progress" }, function(result){
            result = result.replace(/^\s+|\s+$/g,'');
            console.log('result is: ' + result);
            progressMessage = (result=="") ? "Performing Search" : result;
            $progressIndicatorMessage.html(progressMessageStart + progressMessage + progressMessageEnd);
        });
    }, 1000);

任何人都知道为什么?我很困惑。

1 个答案:

答案 0 :(得分:0)

回应“在页面处理时更好的方式来娱乐用户....建议?”,......,

Here are some references for a progress bar.

另一种选择是使用和cfflush立即在div中显示图像文件,然后在页面处理完毕后,替换div的内容。这将需要使用cfsavecontent和javascript。 Here are some links

另一个选项,如上所述显示图像。使用cfsavecontent,但使用会话变量。然后使用cflocation转到另一个输出会话变量的页面。这可能是最简单的选择,而且,它可能会忽略按下转义键。你必须验证它。

相关问题