0

我正在尝试使用 .load 轮询来自服务器的特定元素 ID,但只有当我使用 window.location.reload() 跟随 .load 时,才会更新该元素。

具体来说,该元素是 vxworks 服务器每秒更新一次的 vxworks windmark 元素*,浏览器应读取并显示该元素。

页面上的元素:

<span id="general_response_windmark_id" >$%general_response_windmark#$</span>

在页面末尾我做:

setInternval( 'foo()', 1000 )    // to re-display once a second

不工作:...

function foo()
{
    windmark_field_id = 'general_response_windmark_id'
    $('#' + windmark_field_id).load(' #' + windmark_field_id);
}

作品:...

function foo()
{
    windmark_field_id = 'general_response_windmark_id'
    $('#' + windmark_field_id).load(' #' + windmark_field_id);
    window.location.reload()
}
    • vxworks 服务器将“$%general_response_windmark#$”替换为不断变化的数字字符串。

谢谢

4

3 回答 3

1

将您的<span>标签放在一个单独的 HTML 文档中(如果您愿意,可以单独放置),然后使用 jQuery 加载它:

function foo() {
    var wfid = 'general_response_windmark_id';
    $('#' + wfid).load('external-span-page.html #' + wfid);
}
于 2012-05-16T18:06:22.420 回答
0

我认为

 $('#' + windmark_field_id).load(' #' + windmark_field_id); 

语句有错误。

因为在.load()第一个参数中是一个 url,据我所知,一个 url 不能以#符号开头。

重新检查您的 url 分配.load(),这将解决您的问题。

阅读 .load()

于 2012-05-16T18:02:45.713 回答
0

答案:将完成函数参数添加到 .load 中,就在 URL 之后。

问题:我的原始代码正在执行 .load,然后立即从浏览器页面 DOM 中读取元素,即使 .load 尚未完成。使用 .load 的完成功能会等到它完成。

哈哈!

于 2012-05-16T20:51:10.893 回答