当加载资源时,Opera会卡住。

3
我有自己的本地服务器设置,并希望确保与五大浏览器(IE,Firefox,Chrome,Safari,Opera)兼容,但是在使用Opera时遇到了问题。具体来说,它无法访问我的本地资源(javascript、css、图像等),从而导致挂起。
我可以看到GET请求和服务器响应都很好,在其他浏览器中没有任何问题,但是Opera挂起了。起初,我以为可能是这里讨论的问题,但我不确定是否是这种情况,因为Opera最终会正确显示页面。看起来它正在等待某些东西,超时,然后请求另一个文件,直到它获得所有所需内容,然后正确显示页面。这不是我的Opera配置设置的问题,因为我能够通过我的thttpd服务器轻松访问它。
目前,该过程类似于以下内容:
  • Opera向服务器发送GET HTML请求
  • 服务器响应头和HTML文件
  • Opera等待....
  • Opera向服务器发送GET资源请求
  • 服务器响应头和资源
  • Opera等待...
  • Opera渲染页面

我仍在努力寻找答案,但当它在其他所有浏览器上都可以工作时,这很让人沮丧。

编辑(11/23/11 12:15 EST):

Got message from client: 
GET / HTTP/1.1
User-Agent: Opera/9.80 (Windows NT 6.1; U; Edition United Kingdom Local; en) Presto/2.9.168 Version/11.52
Host: 192.168.0.3:8082
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: en-US,en;q=0.9
Accept-Encoding: gzip, deflate
Connection: Keep-Alive

Server Response:
HTTP/1.1 200 OK
Content-Type: text/html; charset=iso-8859-1
Accept-Ranges: bytes
Connection: close
Content-Length: 2909
[File content]

编辑(11/28/11 5:30 EST): 这可能与我的HTML头有关吗?

<head>

    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>

    <meta name="viewport" content="width=device-width">

    <title>TestPage1</title>

    <!-- Javascript References -->

    <script type="text/javascript" src="Styles/Display.js" charset="utf-8"></script>    



    <!-- CCS References -->

    <link rel="stylesheet" href="Styles/Display.css" type="text/css"  charset="utf-8"/>

</head>

1
服务器是否支持HTTP流水线传输?Opera能否正确检测到它是否支持流水线传输?您是否调整了最大连接数的设置?对于这样的问题,我真的需要一个要查看的URL。 - hallvors
这是一个本地服务器(所以无法从网络上看到),我正在尝试从头开始使其尽可能小。我不熟悉流水线处理,因此它不在服务器中。如果有帮助的话,我已经在上面的帖子中编辑了客户端/服务器交换的示例。 - Matt
1
如果您在此处禁用“启用流水线”,是否有帮助? opera:config#pipelining-请注意,您可能希望稍后将其打开,关闭它会减慢正常浏览速度。您可以尝试调整的另一个首选项是opera:config#Loading%20Delayed%20Timeout-这基本上决定了如果JavaScript文件未加载要等待多少秒。 - hallvors
@hallvors - 关闭流水线技术对我很有帮助。谢谢你!我不会在常规浏览中使用Opera(只用于测试),所以关闭它应该不会有问题吧? - Alex Ghiculescu
2
好吧,它会加载真实的网页要慢得多 - 但除非你想真正使用Opera,否则这对你来说并不重要 :-p - hallvors
显示剩余3条评论
1个回答

0

这个问题在@hallvors的评论中得到了解答:

如果你在这里禁用“启用管线化”选项,会有帮助吗? opera:config#pipelining - 请注意,您可能希望稍后将其打开, 关闭它会减慢正常浏览速度。另一个您可以尝试调整分析的选项是 opera:config#Loading%20Delayed%20Timeout - 这基本上决定了多少秒钟等待JavaScript文件加载。

这个bug可能是由于Opera启用了HTTP/1.1管线化造成的,而Firefox和Chrome由于服务器行为不良而禁用了它,Microsoft IE没有实现。Tor浏览器包基于Firefox,因此启用了它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接