php网站访问异常,服务器在客户机房,正常运行,但是客户那边无法正常操作系统!

php网站访问异常,服务器在客户机房,正常运行,但是客户那边无法正常操作系统,可以正常访问系统!
1.执行excel上传操作后,文件已经上传成功,并且保存到数据库中,这个过程耗时较长,2-3分钟的样子,但是网页不能成功跳转,白屏之后提示网页无法打开,而我自己的机器包括朋友的机器,操作都是正常跳转到“操作成功”提示页面!
2.php调用存储过程,耗时2-3分钟,结果跟上面一样!检查服务器没问题,我这边所有机器测试都是正常!
3.导出excel表,耗时1-2分钟,有时能成功导出,有时很慢才能导出,有时等很久之后,网页停摆。
上述所有情况,在我公司的机器上面都不会出现,远程到其他非客户那边的机器测试,也是正常执行!
客户乱投诉,求大神支招!

第1个回答  2013-11-28
超时造成的,不光是程序设置永不超时,浏览器、特别是360,他自己有个超时时间,过了就是白屏。如果你这个操作是针对用户操作的,那么上传就用个flash插件,做成类似邮箱上传带进度显示的模式,要注意用户体验。
还有,大文件读写很费时,数据库尽量读写分离。追问

我也怀疑是超时,可是为什么只有客户的机器超时呢?我这边是边上传,边把数据写入库里,并且通知用户是否成功,您有什么好的建议吗?万分感谢!

追答

边上传边写库?并发时呢?数据库不会锁吗?
接大文件本身就是个费时间的程序,特别是文件在数据库里是个大文本字段。保存文件的话,库里存个地址不就行了。
写完库只接文件。使用我说的那个插件的话,上传是在页面先执行的,并且带有进度条显示。用户体验还不错。如果你非要存库的话,建议另起一个计划任务在访问量小的时候跑,减少压力。或者PHP不能操作多线程,但是可以多进程,你也可以 研究下。

追问

不是把文件写进库里,是把上传的excel的记录读取出来,然后写入库里,一个excel大概几万调数据。

追答

特别是文件在数据库里是个大文本字段,所以没说是二进制流,是个大文本字段,很慢的。这是你们设计的时候没考虑足够的并发和压力。屏掉即时写库,单独存文件。另起计划任务的时候再存在库里。

第2个回答  2013-11-28

我以前遇到过类似问题,但是不知道是不是和你的问题完全一样。一是防止用户在导出过程中,再次点击导出按钮;另外因为写入的excel内容较多,导致内存不够用了。

    用户在点击导出按钮后, 文件未完全导出之前,导出按钮变灰,不可操作。

    设置php 内存:ini_set('memory_limit','xxx');   //(xxx用具体多少M来代替)

    优化导出excel的php文件,尽量少定义变量名和为变量重新赋值。


不敢说一定会解决你的问题,仅供你做个参考吧

本回答被提问者采纳
相似回答