美文网首页
练手项目:BullShit聊天室(第二天)

练手项目:BullShit聊天室(第二天)

作者: 鱼翅大魔王 | 来源:发表于2018-10-17 15:30 被阅读0次

2018年10月17日 4:00:00

BullShit聊天室开发的第二天
昨天已经完成了聊天室的基本雏形,包括(显示消息,发送消息)两个主要功能。
今天在之前的基础上增加了(用户登录功能),同时优化了昨天遗留的(消息显示问题),优化了用户输入框的部分内容并添加了一些前端效果。
本文对于部分重复的内容不再做赘述。

添加用户登录功能

  • 数据表构建

  • 实体类创建

  • 前端的编写

此处存疑:在编写 登录/注册 的前端页面时,Jqueryshow()方法无法触发,而另一个类似的按钮可以正常触发,后来删除了Div中的<form>标签后问题解决了,但事实上在测试用的Demo中并没有发现这个问题。

消息显示问题

在考虑了昨天的遗留之后做了一些思考:JavaScript的计时器会一直执行,为了能更快的获得新的消息,计时器的间隔会很短,而这就一定会造成计时器内的滚动条定位被一直触发,最后使得聊天窗口的滚动条完全没法使用;
之所以需要计时器,是为了能不断的获得数据库中的数据,而这一点却存在着一些问题:按照之前的算法,程序在不断的读取数据,然后写在页面上,事实上我们是否需要一直写呢?
function callBack() {
                if (ajaxReq.readyState == 4) {
                    if(text != ajaxReq.responseText){
                        text=ajaxReq.responseText;
                        $("#News_Table").html(text);
                        //默认滚动条最底部
                        $("body,html").scrollTop($("table").height());
                    }
                        
                }
            }
如上修改了ajax的回调函数之后,每一次程序获得Servlet的反馈后,都会判断本次获取的内容是否发生了改变,如果发生了改变则重新写入新的Html代码,同时修改滚动条的位置,解决了昨天的遗留问题。

用户输入框的优化

在之前的内容中,用户输入框使用的是<input type="text"/>,使用该标签存在一个问题是,input-text并不具有换行的功能,也就是说如果输入的文本足够长,该文本框是一直不断的横向滚动而不是自动换行。
不用多说自然是换成了文本域<textarea></textarea>标签。

前端效果的加入

这里尝试做一个仿英雄联盟的效果用于加好友。
添加好友.gif
值得一提的是,因为类名一样,行为一样,结构一样,这里又遇到了之前白块儿里对于事件解绑的问题,不过这次很快就解决了。
$("#agree,#refused").click(function(){
    var height=$(".friend").height();
    $(".friend").animate({height:height+100+"px"},300);
    $("#agree,#refused").off('click').click(function(){
        $(this).parent().hide(300);
    })
})
当然这里的写法并没有对应功能,后端的开发还未完成,因此这里只是做了行为处理和测试。

一个非常严重的错误,登录重写

晚一点的时候发现自己写了一个非常傻*的东西,在判定完登录之后跳转页面直接用URL传参了用户的账号,然后在数据库里查询账号的记录并显示了其它的内容。
弊端我就不说了,URL里想上哪个账户就上哪个账户,完全不需要密码……
最后自然是重新处理了代码,验证之后把账号密码存进了Session中,然后在页面开头从Session里取出内容进行验证防止其它更重不允许的跳转。

第二天的内容到这里就结束了,到此为止得到的是一个不含注册的聊天室应用。

从今天的开发中看到最大的问题就是规划,因为没有考虑好功能的实现,太多时间都花在了重写上。其次关于JavaScript基础不足的问题已经没什么好说的了。

给明天定个目标:首先完成注册功能,然后把验证码功能个实装,之后尝试实现添加好友(数据库,后端逻辑)。

相关文章

网友评论

      本文标题:练手项目:BullShit聊天室(第二天)

      本文链接:https://www.haomeiwen.com/subject/gpcrzftx.html