【发布时间】:2011-11-22 20:41:18
【问题描述】:
我有自己的本地服务器设置,并想确保我与 5 大浏览器(IE、Firefox、Chrome、Safari、Opera)兼容,但我遇到了 Opera 的问题。也就是说,它无法访问我的本地资源、javascript、css、图像等并挂起。
我可以看到GET请求和服务器响应都很好,其他浏览器没有问题,但是Opera挂了。起初我认为这可能是here 讨论的问题,但我不确定是否是这种情况,因为 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>
【问题讨论】:
-
服务器是否支持 HTTP 流水线? Opera 能否正确发现是否支持流水线?您是否调整了最大连接数的设置?对于这样的问题,我真的需要一个 URL 来查看..
-
它是一个本地服务器(所以从网络上看不到它),我试图让它尽可能小。我不熟悉流水线,所以它不在服务器中。如果有帮助,我已经使用客户端/服务器交换示例编辑了上面的帖子。
-
如果您在此处禁用“启用流水线”首选项,是否有帮助? opera:config#pipelining - 请注意,您可能希望稍后再次打开它,将其关闭会减慢正常浏览速度。您可以尝试调整以进行分析的另一个首选项是opera:config#Loading%20Delayed%20Timeout - 这基本上决定了如果JavaScript文件未加载则等待多少秒。
-
是
localhost吗? Opera 在文件和本地主机 url 方面存在某些问题,尤其是当它们链接到外部 Web 资源时。 -
好吧,它加载真实网页的速度会慢得多——但除非你想真正使用 Opera,否则我想这对你来说并不重要:-p