总的来说写这个项目还是状态差了,前期中期写太慢,后期疯狂赶。
讲点对写这个项目能想起来解决的问题和写的的感触。
前期:当时觉得时间很充足,有布置算法题,我竟然还花三四天去学算法,,动态规划,背包问题之类的,没有规划好时间,等开始搞的时候发现已经落别人一大截了。。。
学了一些知识,html,css,javaScript前端三剑客,还有mybatis,servlet,axios,当时学的很慢,现在想想其实感觉自己就不会学习,看的很仔细,跟着一个个敲,太浪费时间了真的太浪费时间了,而且后面要写时也记不住,刚接触servlet封装的时候,也是傻傻的想去看懂一直研究那个,后来发现没必要,那个有模版,理解一下就行不用细扣。然后就很慢了,比他们慢很多,对自己很不自信觉得自己不可能完成,自己也不喜欢问,连html要放到css和js的外面的软件包都不知道,还一直在想为什么css和js就是导不进去,然后没有什么积极性了。
中期:中期答辩后,我一个功能点都没写出来,也没有用servlet封装那个我是真的有点懵,真的差距很大很大,但我也是真的不甘心,但是还是没找到正确的学习方法,当时还是熬着夜就想把servlet弄明白,弄明白后,写到后面才发现根本不需要细扣,顿时感到后悔,大概16号写完登录注册然后时间就特别赶了。
遇到了好多大大小小的bug,首先是播放音乐,那个文件的问题
项目中文件上传到服务器。如果使用编译路径下的目录作为上传的路径,则每次重启服务器文件将消失,这个bug找了非常久,1.指定外部存储路径:将文件上传路径设置为项目外部的一个固定目录,比如 /var/uploads
或者 D:/uploads
。这样可以确保文件在服务器重启后依然存在。2.使用数据库记录文件信息:上传文件后,将文件的元数据(如文件名、路径、上传时间等)存储到数据库中。即使文件被删除。
然后就是局部刷新后出现的按钮点击没反应,这个也找了很久,一直没发现问题。后面想了两种可能:
1.JavaScript 文件未重新加载因为是js控制的,如果相关的 JavaScript 文件在局部刷新后没有被重新加载,可能会导致某些功能无法正常运作
2.可能是状态问题:局部刷新可能导致某些状态信息丢失,例如输入框的值、按钮的状态等。这可能影响按钮的可用性。
然而都不是,后面才发现是事件绑定丢失 我在局部刷新时,按钮的事件绑定是通过 JavaScript 直接在 DOM 元素上进行的,这部分元素可能会因为局部刷新而被替换。如果没有重新绑定事件,按钮将无法响应点击事件。这个搞了好久。
还有就是播放音乐,当时那个界面有点难写,又想写的好看就花费了很多时间,然后那个歌词处理ai像听不懂人话一样搞的很奇怪,最后还是靠手敲了一部分,搜了很多资料在csdn,但是渲染看起来滚动是叫ai写的,就是一个
transition:all 0.2s; /* 过渡动画。实现歌词上下移动的动画 */
这样的样式,答辩没回答出来。
然后就是评论部分,这个之前我可以正常使用,然后答辩不知道是不是缓存问题,当时不可以同时两个用户登录发评论,最后答辩完重启电脑后两个用户登录就可以同时发评论了,当时答辩我有些紧张说第一遍没说好,大家都没听懂,被反问了一句给我整不自信了,后面支支吾吾不敢说了。这个最终答辩再说吧。
还有很多问题直接博客写过就不搬运了,写的是最近解决的
16号写完登录注册,26号后期答辩,写的挺多的,歌曲播放,二级评论,歌曲列表,搜索。就是前期太慢太慢了
最后就事补功能点,暂时在写管理员。
然后昨天和前天写了:一些完善的东西,管理员还没写好