关于PHP的一个坑爹问题(页面刷新)
最近在用PHP做一个服务端和一个客户端,在快要完工的时候,出现了一个重大问题----
当在客户端手动输入IP和端口的时候,一按连接,OK,连接成功,嘻嘻,就在我自以为大功告成的时候,来了个晴天霹雳,一按其它按钮,连接就断开了!
我慌了,以为代码出现了逻辑问题,就不断地修改,但无论怎么改,问题还是没法解决,最后决定向一位大神师兄请教,通过交流,师兄就说知道我的问题
是什么了----php不能操作图形界面,你要用js去发送!
哎呀,我的妈呀,我都快完成了,你叫我改用js,并且我都没学过这东西。
我:不是喔,我之前那个可以的。
师兄:不会吧,当POST的时候,页面就会刷新,相当于你重新打开了一次页面,http是无状态的。
然后,为了证明我之前做的那个是可以的,我再次打开演示给他看,在演示过程中,我才发现,那个之所以能成功,是因为它的IP和端口都设死了啊!就算
页面刷新了,IP和端口也都没变!所以就给人一个持续连接的假状!终于发现问题的本质了!
既然发现了问题所在,接下来就是解决问题了!
师兄:你可以把连接的页面和发送的页面分开写啊,或者用iframe,这样就不会刷新了。
我试了下,iframe好像也不行,你再多google一下吧,另外刚刚想到你可以尝试下写一个静态变量,用来保存ip。
师兄提供了很多方法,但还是没能把问题解决。。。
就在我快要放弃的时候,突然想起了session,我可以用session来记录浏览的user啊!然后就百度去了~~最后确实,问题解决了!
感想:通过这个问题,我终于明白,与人交流的重要性,人与人在交流中,能够碰撞出更多思想的火花,当然这是在自己认真思考的前提下的!
本来师兄提出页面会刷新的时候,我还是不以为意的,当时师兄也没觉得那个是本质问题,经过思考,验证才最终确定。如果当初我没有
去问,我大概还在那里修改代码的逻辑问题。。。而问题的本质就永远被忽视了。。。
关于PHP的一个坑爹问题(页面刷新)的更多相关文章
- VUE的一个数据绑定与页面刷新相关的bug
1.场景: N层嵌套的循环查询业务场景,框架是vue.其中在最后一层查完之后,还需要查其中每一项的两个属性,类型都是列表.查完之后将其赋值给一个变量用于页面展示.代码如下: (1)异常代码: getS ...
- 使用一个HttpModule拦截Http请求,来检测页面刷新(F5或正常的请求)
在Web Application中,有个问题就是:“我怎么来判断一个http请求到底是通过按F5刷新的请求还是正常的提交请求?” 相信了解ASP.NET的人知道我在说什么,会有同感,而且这其实不是一个 ...
- 用js判断页面刷新或关闭的方法
Onunload,onbeforeunload都是在刷新或关闭时调用,可以在<script>脚本中通过window.onunload来指定或者在<body>里指定.区别在于on ...
- js中页面刷新和页面跳转的方法总结
.js中cookie的基本用法简介 2009-12-15 js中页面刷新和页面跳转的方法总结 文章分类:Web前端 关键字: javascript js中页面刷新和页面跳转的方法总结 1.histor ...
- ASP.Net中防止页面刷新重复提交的几种方法
[摘要] 目前很多网站都要提交页面插入或更新数据库,比如留言本,一个用户提交留言后,如果按F5,就会重新提交一遍留言,导致数据库出现两条一模一样的留言,本文介绍了几种防止页面刷新,导致重复提交数据的方 ...
- 领导让我重新做一个微信H5页面!
leader:我们需要做一个微信H5页面,效果如图,功能如描述,时间越快越好. 需求是不是很简单呢?2015-11-24 12:44:00文末有最新更新 背景描述 前几天微信转发相关项目开发后,这是第 ...
- JQuery实现页面刷新滚动条自动滚动到特定位置
var cotentOffset = $('#6f').offset(); $('.info_box').animate({ scrollLeft: cotentOffset.left }, ); 原 ...
- sharepoint 2010 页面刷新时滚动条位置保持不变 Controlling scrollbar position on postback
sharepoint 2010 页面刷新时滚动条位置保持不变 Controlling scrollbar position on postback在sharepoint 2010中,如果当前页面的篇幅 ...
- js页面刷新之实现定时刷新(定时器,meta)
测试页面的代码见上一篇博客 接下来进入正题-定时不断刷新页面的方法: 1.看到定时,很容易想到js的定时器: //第一种方法 //由于我们已经有了一个定时器,所以只要在定时器test中加入一句刷新页面 ...
随机推荐
- 你必须知道的495个C语言问题,学习体会四
本文,我们来学习下指针,这是个梦魇啊.无数次折磨着C语言学习者,无数次的内存泄露,无数次的访问失败,无数次的越界溢出, 这些错误造就的仅仅是一个 跟随者,真正的优秀者必须要正视语言的局限,同时在最大限 ...
- php果然是世界上最好的语言
这两天参加Hackathon,作为一个什么都半吊子的家伙,两人小队伍被逼上岗,于是我不得不着手写代码.由此,我体验到了php的魔力-- 首先,我深刻地意识到了更新版本的重要性. 偷懒不想搭Apache ...
- (一)canvas简介
<canvas>元素主要用来图形的绘制,通过脚本来完成(通常时js来实现): 可以利用其实现图表,游戏等项目的开发. getContext 获取画布的摸板是2d还是3d strokeRec ...
- 神奇的TextField(1)
先看一大段测试代码,每个小方法的注释行是输出结果. private var text_content:TextField; private function textFieldDemo():void{ ...
- eclipse中package explore和project explore 怎么相互切换???
window--->show view--->other---->Java---->Package Explorer或者选project explore之后就可以相互切换了
- python操作excel xlrd和xlwt的使用
最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异,而且不太能满足需求,不过经过一番对源码的"研究&q ...
- 1132. Cut Integer (20)
Cutting an integer means to cut a K digits long integer Z into two integers of (K/2) digits long int ...
- 转载 关于include尖括号和双引号的区别。
对于使用尖括号( < >),预处理程序cpp在系统预设包含文件目录(如/usr/include)中搜寻相应的文件,而对于使用双引号(“ ”),cpp在当前目录中搜寻头文件,这个选项的作用是 ...
- 【spring源码学习】spring的IOC容器在初始化bean过程
[一]初始化IOC的bean的时候Spring会执行的一些回调方法 (1)spring bean创建的前置处理 =>ApplicationContextAwareProcessor 在创建bea ...
- fn project 对象模型
Applications At the root of everything are applications. In fn, an application is essentially a grou ...