javascript - Java 变量未在 Javascript 的 setinterval 内更新

标签 javascript java jsp

嗨,我目前正在开发一个 Web 应用程序,其中我的 Java 代码将不断从数据库中获取数据并更新其自己的静态变量。当我在控制台中输出时,我可以确认该变量正在不断更新,但是当我想在我的 Javascript 函数(位于我的 .jsp 代码中)中使用此变量时,它始终采用初始值并且永远不会更新,尽管位于 SetInterval 函数中。

以下是我访问 Java 静态变量的 Javascript 段。

function moveMarker(map,marker){

    setInterval( function(){  
        document.write(<%=DbManager.latitude%>);
    },5000);
}

DbManager.latitude 变量始终保持其默认值,尽管在 Web 应用程序运行时不断更改。我期待得到解决此问题的任何答案,或者可能是我想要实现的目标的替代方案。

最佳答案

最好使用 AJAX 来实现此目的。

<script type="text/javascript">

    $(document).ready(function() {
        setInterval(ajaxCall, 5000); // 5 MS
    });     

    function ajaxCall() {
        $.ajax({
            type: "POST",
            url: "/getUpdate/" ,
            success: function(result) {
                document.write(result);
            }
          }
    });
</script>

从 AJAX 调用您的 servlet/ Controller 并获取更新的值

@Controller
@RequestMapping(value = "clause")
public class ClauseController {

  @RequestMapping(value="getUpdate") 
  @ResponseBody
  public String selectClause(ModelMap model) {
  DbManager dbManager = DAO.getDbManager;     
    return "dbManager.latitude";
  }
}

关于javascript - Java 变量未在 Javascript 的 setinterval 内更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46190520/

相关文章:

javascript - 谷歌图表双Y图表和标签列

java - Java 中的多线程不考虑套接字超时?

mysql - java EE Hibernate 列表多对多配置错误

java - 错误 500--内部服务器错误 java.lang.NoClassDefFoundError : javax/servlet/jsp/jSTL/core/Config

javascript - 这里如何选择TR?

javascript - 推文按钮,用于推文 URL,不带 http ://www

java - 如何将 Java 的 XPath 库与 XML 命名空间结合使用?

java - 从IPCAM播放音频流的极端延迟

java - 如何模块化/组织 Java Web 应用程序

javascript - 单击按钮时更改 div 的内容