Привет, я сейчас делаю веб-приложение, где мой Java-код будет постоянно извлекать данные из базы данных и обновлять собственную статическую переменную. Я могу подтвердить, что переменная постоянно обновляется, когда я выводю ее на консоль, однако, когда я хочу использовать эту переменную внутри моей функции Javascript (которая находится внутри моего.jsp-кода), она всегда принимает начальное значение и никогда не обновляется несмотря на то, что он находится внутри функции SetInterval.
Ниже представлен сегмент Javascript, где я обращаюсь к статической переменной Java.
function moveMarker(map,marker){
setInterval( function(){
document.write(<%=DbManager.latitude%>);
},5000);
}
Переменная DbManager.latitude всегда находится в ней по умолчанию, несмотря на то, что она постоянно изменяется при запуске веб-приложения. Я с нетерпением жду любых ответов, которые я могу решить, чтобы решить эту проблему, или, возможно, альтернативы тому, чего я пытаюсь достичь.
Лучше вы можете пойти с 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 и получите обновленное значение
@Controller
@RequestMapping(value = "clause")
public class ClauseController {
@RequestMapping(value="getUpdate")
@ResponseBody
public String selectClause(ModelMap model) {
DbManager dbManager = DAO.getDbManager;
return "dbManager.latitude";
}
}