【问题标题】:HTML not updating?HTML 没有更新?
【发布时间】:2010-03-16 20:10:40
【问题描述】:

我有一个用 C 编写的 CGI 应用程序。当我从 html 表单向 cgi 应用程序 POST(删除数据)时,该操作在服务器上正确执行,但在 POST 之后页面没有刷新。它会闪烁,但会显示未更新的页面。然后我必须刷新浏览器才能看到正确更新的 html 页面(显示数据已被删除)。

这是网络服务器吗? Javascript?还是只是浏览器设置? (我正在使用 GoAhead 网络服务器、C 语言中的 cgi 应用程序、javascript、html 和 Fire Fox。)

感谢任何帮助。

【问题讨论】:

    标签: javascript html c


    【解决方案1】:

    是您的浏览器缓存在欺骗您。

    检查您在GETting(或POSTing)页面时获得的 HTTP 标头,以查看是否有任何关于缓存的内容,如果是您的网络服务器导致缓存,否则是浏览器。尝试使用其他浏览器,或让网络服务器发送带有负过期日期的页面。

    【讨论】:

    • 负的到期日期能保证新页面吗?
    • 查看标题,当有图像时,它显示“cache-Control: no-cache and Pragma: no-cache” 虽然html没有此信息
    • 根据我的经验,负的过期日期会导致页面立即过期,即不会缓存在浏览器中。但我认为这可能被认为是 hack,我会先寻找问题的原因,看看是否可以修复。
    • 我不知道。我猜您的浏览器会将最新页面的缓存保留在内存中。我建议您使用不同的浏览器进行测试,并查看“fuzzy lollopop”的答案。
    【解决方案2】:

    您确定要返回更新页面以响应 POST 吗?

    【讨论】:

    • 更新后的页面在客户端的本地目录中......然后它会正确显示(但我必须手动点击浏览器刷新)我希望在 POST 新页面之后直接显示。
    【解决方案3】:

    为了确定发生了什么,您需要嗅探本地网络(使用Wireshark)。

    Wrieshark 向您显示流量,还可以过滤特定流。

    捕获后,您可以了解发送到服务器的具体内容以及响应内容。

    【讨论】:

      【解决方案4】:

      如果您使用的是 Firefox,则需要安装 Firebug 插件,它会在“net”面板中显示您的页面是否被缓存或从服务器正确检索。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-12-05
        • 2018-12-02
        • 2021-04-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多