javascript - 使用 jQuery 更新经典 ASP DIV 而无需重新加载网页

标签 javascript jquery html ajax asp-classic

这应该非常简单,所以,要么我想太多了,要么让它变得比它应该的更复杂。

我想在不重新加载网页的情况下更新 DIV。

Canvas.asp 上的一个表单查询数据库并返回 GPS 设备的坐标。坐标每分钟更新一次,希望脚本无需刷新页面即可返回最新的坐标。坐标附加到单独的 XML 文件。

这是我写的;

<script type="text/javascript">
    $(document).ready(function() {
      $("#map").load('canvas.asp');
      var auto_refresh = setInterval(function() {
        $("#map").load('canvas.asp?std=<%=session("7digit")%>&submit=Search&execute=1');
      }, 60000);
      $.ajaxSetup({ cache: false });
    });
</script>

要重新加载的div;

<div id="map"></div>

脚本通过复制标题和内容返回错误,60 秒后 map DIV 无处可寻...完全消失了!坐标每 60 秒附加到 XML 文件,即使在错误发生后也是如此。

我做错了什么?

最佳答案

看起来您总是返回 canvas.asp 的完整结果页面将始终是完整的 HTML 文档,不会很好地与您的 <div> 配合使用.

这里的问题是如何处理返回的部分内容,这归结为如何构建 ASP 页面。这是我经常用于此类事情的基本模板。

<%
    Option Explicit

    Dim action, def_action

    Const BASE_ERROR_VAL = 1000
    Const DISPLAY_PAGE = 0
    Const DISPLAY_CANVAS_CONTENT = 1

    'Without this the page does nothing, this is the gateway to your page.
    Call init()

    'First code that get's run when page is requested
    Sub init()
      'Defaults
      def_action = DISPLAY_PAGE

      'Process query string
      action = Request.QueryString("a") & ""
      If Len(action) > 0 and Isnumeric(action) then action = CInt(action) Else action = def_action

      Select Case action
      Case DISPLAY_PAGE
        Call load_page()
      Case DISPLAY_CANVAS_CONTENT
        Call load_canvas()
      Case Else
        'As we have a default this should NEVER happen, but always worth covering your bases.
        Call Err.Raise(vbObjectError + BASE_ERROR_VAL + 1, "canvas.asp", "Action required")
      End Select
    End Sub

    Sub load_page()
>%
<html>
  <head>
  ...
  </head>

  <body>
    <% Call load_canvas() %>
  </body>
</html>
<%
    End Sub

    Sub load_canvas()
%>
    <canvas>
    ...
    </canvas>
<%
    End Sub
%>

这纯粹是简单的框架,旨在让您了解如何处理它,例如,要仅调用 HTML 的 Canvas 部分,您可以使用类似的东西

canvas.asp?std=<%=session("7digit")%>&a=1

要么不通过&a完全(默认为DISPLAY_PAGE)或通过

canvas.asp?std=<%=session("7digit")%>&a=0

显示整个 HTML。

您可能还注意到我包含了

<% Call load_canvas() %>

load_page()里面程序,这仅适用于您可能希望 Canvas 的内容也在完整 channel 上呈现然后稍后通过使用 a=1 的部分 channel 进行更改的情况。例如。

关于javascript - 使用 jQuery 更新经典 ASP DIV 而无需重新加载网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39751014/

相关文章:

javascript - 如何向此 JavaScript 添加或修改我的 jquery 以进行多重选择?

jquery - Bootstrap 侧边栏仅切换顶部

html - fieldset - Internet Explorer 解决方法中的虚线边框?

html - 复选框样式在 Safari 移动设备上不起作用

javascript - 将文本嵌入 PNG

javascript - 设置 'dataURL'的值超出配额

javascript - 处理切换按钮上的焦点

javascript - 按照添加顺序从多重上传字段获取图像

javascript - 我怎样才能给 Ember 数据模型一个 TTL 并在它过期后重新加载它?

javascript - 单击 Div 和更多特定元素