发表于: 2018-04-24 19:56:41

1 449


今天又进入知识盲区了,ajax有点看不懂。

遇到的问题:

现在大致明白怎么通过ajax发送请求,可以先将XMLHttpReques定义为变量 xhr, 然后通过open发送请求,我们这个任务四的接口是post/ a login,所以open就可以写成

xhr.open("post",/carrots-admin-ajax/a/login",true);

接着设置HTTP头部信息,xhr.setRequstheader("Content-Type","application/x-www-form-urlencoded")表示发送JASON格式的值,然后浏览器用x-www-form-urlencoded方法把数据转化为一个字串。

最后是xhr.send("name="+获取到的登录名+"&pwd"+获取到的密码);

数据的发送就是这些,然后我们根据返回的值,来定义一些想要的结果,比如跳转,或者警告。

xhr.onreadystatechange=function(){

他的属性指向一个回调函数,只要onreadystatechange的事件发生时,回调函数就会被调用。

我们可以判断xhr.readyState===4来执行下一步,

他有4个值,我们知道4是服务器数据已经接受完毕就可以了,然后执行下一步,接着就是判断xhr.status.

status是代表通信成功与否,if((xhr.status)>=200&&(xhr.status)<300)||xhr.status===304)如果成功,就可以判断输入的用户名和密码是否为正确的,这个时候可以定义变量,data=jason.parse(xhr.responceText),然后判断data.code是否是0.如果是则跳转,否则执行警告的语句。

ajax大致就这么些,然后是nginx的配置。

这个root指的是index文件的位置,也就是输入localhost得到的登录页面,我们可以改为自己的文档位置,然后

让它在这里面搜索index.

root   C:\Users\XXXX\learngit;

            index  index.html index.htm;

        }

然后把任务的需要地址复制进去

location /carrots-admin-ajax/{ 

        proxy_pass http://dev.admin.carrots.ptteng.com/; }

http协议是互联网的基础协议,简而言之,就是你发送请求,然后服务器端接受请求,互相交互。

任务总结:

JS任务四

这个任务我觉得比较重要的是数据的存储和页面的渲染。

首先所有数据的初始化要放在法官查看身份的界面,不然每次调回游戏界面都会重置,无法保存玩家的状态。

所以我将这些数据都方式了最开始的第一个页面。之后就不用管这么多了,每次保存kills数组就可以了。

接着进入游戏界面,比较重要的点是有限状态机,分为四个状态,杀手杀人,亡灵发表遗言,玩家依次发言,投票,分别对应四个游戏流程,然后状态机的method写对应我们想要执行的方法,比如跳转,alert,改变面板颜色之类的。

开始游戏之后,点击杀人页面,这个时候就要渲染页面啦,首先判断有没有人死了,他的身份是否是杀手,如果状态为dead,就将他的头像染成红的。当发生点击事件的时候,首先清除其他玩家目前的颜色,然后给点击的玩家加上颜色,这个取下标的方法就是this.indexof。然后储存这个下标,在选中确认之后,根据下标,将该玩家的身份状态和被杀事件,被杀方式通通改变,储存数据,然后确认这个时候的玩家数量,判断是跳转回游戏界面还是结果页面。

进入投票页面同理,有一个不同的地方就是这个时候可以投杀手啦。如果投票结束,游戏还可以继续进行的时候,就给天数加一天然后跳转回游戏界面。

游戏界面这个时候又到了渲染页面的时候啦,根据天数决定渲染几天,然后判断天数,显示具体的游戏界面。

这个时候可以用switch判断,因为最多有18个玩家,所以偷个懒,写九天的页面就行了。

写的比较low,应该还有更好的办法,暂时没想到。




返回列表 返回列表
评论

    分享到