用Ext+S2SH开发的一套系统,部署在武汉客户机房,该客户分公司遍布全国各地。在系统培训时,各地的使用代表都来到武汉参加培训,培训过程良好,代表们在自带的笔记本上操作系统也很顺手,但系统一上线使用,代表们回到原来的地方访问系统,问题就来了。比如,重庆分公司的客户在访问系统时,IE提示,很多页面都会报脚本语法错误,而在武汉、郑州、广东等地访问的,页面并没有报脚本错误,客户的环境基本无差别,实施人员都检查过了。
客户机房支持电信、联通两线的访问,调查过一位重庆的用户,使用的是长城宽带。发现使用电信、联通网络的,基本没出现这样的问题。也排除了浏览器、操作系统等因素的影响。现在一个比较大的疑点就是在网络方面,但客户访问其它的网站、系统,又很正常,好像要客户调整网络也有点说不过去。
系统兼容性不好,在chrome下有个别页面不能显示。系统也做了压缩、客户端缓存。怀疑的重点在“长城宽带”身上,但一时没找到有力证据,搜“长城宽带”,虽然骂声一大片,但也没找到什么合适的。专门发帖问网友,不少网友给了一些参考意见,但没能解决问题。见原贴:
http://topic.csdn.net/u/20120109/11/33b1666b-3535-465c-9ef8-96b40e6335e3.html
客户经常说系统的不好,态度也有点不好了,实施也承担了很大压力,开发组也不轻松,这问题不是小问题。
一次,用HttpWatch经过长时间的排查,终于发现一些可疑之处。通过远程客户机子,发现,有些请求是返回302,正常应该是200或304,再深入跟踪,发现302对应的链接,莫名其妙地在地址前面加了一串其它地址,如:http://www.aaa.bbb.ccc.ddd:999/turl=系统访问地址而用电信网络访问的,则没有前缀的地址。再继续调试,竟然发现,凡是页面上有Ajax请求的地址,都会在前面加了一串上述的链接,做了转发,而传统的、没有Ajax请求的页面,就可以顺利打开。从这点来推测,长城宽带不支持页面Ajax请求,或是前缀的转发有问题。就这个观点,跟客户沟通,得知客户有一个部门是用电信的,且该部门可以打开页面。
接下来,跟网络提供方交流,看这种情况如何处理。应网络提供方要求,把系统域名提供给他们做了处理,客户反馈,可以使用了。
WEB应用开发,什么事情都能有,平时遇到比较多的就是网络互通的问题,这回遇到的“长城宽带”事件,确实让人很在爽啊。