Django 在处理GET请求时显示临时页面

Django 在处理GET请求时显示临时页面,django,Django,我有一个视图,处理GET请求和呈现结果可能需要几秒钟的时间。我想在视图执行其操作时,放置一个临时页面,上面写着“处理…”。我该怎么做 更新 我无法控制指向我页面的链接。这是一个链接到我的第三方在他们的网页上。当他们点击它时,我运行一些东西并显示结果。我不想让他们在我显示的页面上点击任何东西 理想情况下,我希望: 用户单击第三方网站上指向我的网站的链接 我的网站会显示一条“处理请求”消息-用户无需单击任何内容,只需等待 几秒钟后显示结果 用户只需单击一次链接,然后等待结果 如果我不熟悉jQuery

我有一个视图,处理GET请求和呈现结果可能需要几秒钟的时间。我想在视图执行其操作时,放置一个临时页面,上面写着“处理…”。我该怎么做

更新

我无法控制指向我页面的链接。这是一个链接到我的第三方在他们的网页上。当他们点击它时,我运行一些东西并显示结果。我不想让他们在我显示的页面上点击任何东西

理想情况下,我希望:

  • 用户单击第三方网站上指向我的网站的链接
  • 我的网站会显示一条“处理请求”消息-用户无需单击任何内容,只需等待
  • 几秒钟后显示结果
  • 用户只需单击一次链接,然后等待结果

    如果我不熟悉jQuery之类的东西,我会非常感谢一些示例代码,如果我需要的话。

    非常简单的示例:

    <script>
    showProcessingMessage = function() {
    
       $("body").append('<div id="style_me_as_message">processing request</div>');
    
    }
    
    $("body").on('click', "a.slow", showProcessingMessage);
    
    </script>
    <a class="slow" href="/slow-response-page/">show slow page</a>
    
    
    showProcessingMessage=函数(){
    $(“正文”).append(“处理请求”);
    }
    $(“body”)。在('单击',“a.slow”,显示处理消息);
    
    在等待视图返回结果时,使用jQuery显示消息

    在包含处理消息/图像的页面中放置隐藏的div标记

    如果通过单击按钮提交GET请求,则在按钮上放置onclick事件以显示div标记。完成视图处理后,将重新加载页面并显示目标页面

    如果使用AJAX调用视图,则可以在ajaxStart和ajaxComplete事件中显示/隐藏div

    编辑:好的,因为页面将由第三方调用,这将使事情变得复杂一点。我建议您加载没有数据的页面,一旦加载页面,您就可以执行ajaxget请求来检索数据

    你可以这样做:

    向包含进度消息/图像的页面添加隐藏的div标记

    <div id="progress">Please wait while the page is loading.</div>
    
    上面的代码还没有经过测试,但它会给你一个想法

    更新

    我建议您从视图中返回JSON对象或类似对象:

    companies = Company.objects.filter(name__istartswith=companyname)
    results = [{'value': company.name, 'id':company.id} for company in companies ]
    json = simplejson.dumps(results)
    return HttpResponse(json, mimetype='application/json')
    

    您也可以在jQuery中使用getJSON()方法而不是get()。

    谢谢,但我无法控制指向我页面的链接。这是他们在页面上的链接。我不想让他们在我显示的页面上点击任何东西。谢谢。如果这能满足我上面的要求(请参见步骤1、2、3),你能给出一些示例代码吗?谢谢。要实现AJAX get,是否必须更改现有的Django视图以使其启用AJAX?我假设数据将包含我的视图返回的所有HTML页面?我可以显示这个吗?因为AJAX调用是通过GET完成的,所以不需要在视图中启用任何东西。我建议您从视图中返回JSON对象或类似对象:companys=Company.objects.filter(name_uuistartswith=companyname)results=[{'value':Company.name,'id':Company.id}for companys in companys]JSON=simplejson.dumps(results)返回HttpResponse(JSON,mimetype='application/JSON'))
    companies = Company.objects.filter(name__istartswith=companyname)
    results = [{'value': company.name, 'id':company.id} for company in companies ]
    json = simplejson.dumps(results)
    return HttpResponse(json, mimetype='application/json')