gpt4 book ai didi

django - 处理 GET 请求时显示临时页面

转载 作者:行者123 更新时间:2023-12-04 05:53:10 24 4
gpt4 key购买 nike

我有一个 View 可能需要几秒钟来处理 GET 请求并呈现结果。我想建立一个临时页面,上面写着“正在处理...”,而 View 正在做它的事情。我怎样才能做到这一点?

更新

我对指向我的页面的链接没有任何控制权。这是第三方在他们页面上的指向我的链接。当他们点击它时,我会运行一些东西并显示结果。我不希望他们必须点击我显示的页面上的任何内容。

理想情况下,我想要以下内容:

  • 用户单击了我的网站链接,该链接位于第三方网站
  • 我的网站显示“处理请求”消息 - 用户无需单击任何内容,只需等待。
  • 几秒钟后显示结果。

  • 用户所要做的就是单击一次链接并等待结果。

    一些示例代码将不胜感激,因为我对 jQuery 之类的东西很陌生 - 如果那是我需要的。

    最佳答案

    在等待 View 返回结果的同时使用 jQuery 显示消息。

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

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

    如果使用 AJAX 调用 View ,您可以将 div 的显示/隐藏放在 ajaxStart 和 ajaxComplete 事件中。

    编辑:好的,因为该页面将由第 3 方调用,所以会使事情变得复杂一些。我建议您在没有数据的情况下加载页面,一旦页面被加载,您就可以执行 AJAX GET 请求来检索数据。

    你可以这样做:

    将隐藏的 div 标签添加到带有进度消息/图像的页面。

    <div id="progress">Please wait while the page is loading.</div>

    然后将ajax GET调用添加到页面:
    $(document).ready(function () {

    //Attach the ajaxStart and ajaxComplete event to the div
    $('#progress').ajaxStart(function() {
    $(this).show();
    });

    $('#progress').ajaxComplete(function() {
    $(this).hide();
    });

    //Perform the AJAX get
    $.get('/your_view/', function(data) {
    //Do whatever you want with the data here
    });
    });

    上面的代码没有经过测试,但它会给你一个想法。

    更新

    我建议您从您的角度返回一个 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() 方法。

    关于django - 处理 GET 请求时显示临时页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9822763/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com