Javascript 会话变量在我的脚本中不更新

Javascript 会话变量在我的脚本中不更新,javascript,ruby-on-rails,ruby,session,Javascript,Ruby On Rails,Ruby,Session,我在玩弄javascript,在这里遇到了一个奇怪的问题。我在服务器端使用RubyonRails 以下是我想介绍的HTML部分: <div id="pic"> <img src="https://graph.facebook.com/<%=@id.to_s%>/picture?type=large"> </div> 基本上,我的请求是在服务器端处理的,在服务器端变量@id的值被更改(它工作正常,正如使用调试程序所看到的)。因此,当解释java

我在玩弄javascript,在这里遇到了一个奇怪的问题。我在服务器端使用RubyonRails

以下是我想介绍的HTML部分:

<div id="pic">
  <img src="https://graph.facebook.com/<%=@id.to_s%>/picture?type=large">
</div>
基本上,我的请求是在服务器端处理的,在服务器端变量
@id
的值被更改(它工作正常,正如使用调试程序所看到的)。因此,当解释javascript代码时,变量的值也应该根据我的期望在客户端发生更改。。。但事实并非如此,这是我的问题

我猜这段代码是在脚本加载到浏览器中后计算的,而不是每次调用函数时

有解决办法吗

干杯

我猜这段代码是在脚本加载到浏览器中后计算的,而不是每次调用函数时

没错。如果不是这样的话,您甚至不需要ajax来实现这一点

有解决办法吗

正确的方法是从服务器端传递所需的任何数据,然后在js上从
onreadystatechange
事件处理程序(您似乎已经在使用)访问这些数据。服务器响应将作为字符串在
xmlhttp.responseText
中提供

if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
  alert(<%=@id.to_s%>);
  document.getElementById("pic").innerHTML = "<img src=\"https://graph.facebook.com/<%=@id.to_s%>/picture?type=large\">";
}