如何在没有window.location.reload()的情况下使JavaScript .load工作

时间:2012-05-16 17:50:33

标签: javascript jquery vxworks

我正在尝试使用.load从服务器轮询一个特定的元素id,但是如果我使用window.location.reload()跟随.load,则只更新该元素。

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

页面上的元素:

<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);
}

WORKS:...

function foo()
{
    windmark_field_id = 'general_response_windmark_id'
    $('#' + windmark_field_id).load(' #' + windmark_field_id);
    window.location.reload()
}
    • vxworks服务器使用更改的数字字符串替换“$%general_response_windmark#$”。

感谢

3 个答案:

答案 0 :(得分:1)

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

function foo() {
    var wfid = 'general_response_windmark_id';
    $('#' + wfid).load('external-span-page.html #' + wfid);
}

答案 1 :(得分:0)

我认为

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

语句有错误。

因为在.load()内,第一个参数是一个网址,而且我知道网址不能以#符号开头。

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

Read about .load()

答案 2 :(得分:0)

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

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

海畅!