【EnglishPal代码重构】

优化功能:点击“上一篇”“下一篇”按钮时使用Ajax更新页面,而不是每次刷新页面。

一、原执行过程

超链接调用视图函数

1.web层 userpage_get.html

<a id="next_btn" class="btn btn-success" href="/{{ username }}/reset" role="button"> 下一篇 Next Article </a>
<a id="pre_btn" class="btn btn-success" href="/{{ username }}/back" role="button"> 上一篇 Previous Article </a>

2.service层 user_service.py

视图函数修改session,重定向调用userpage(username)方法。
请添加图片描述
重定向调用userpage方法,获得文章数据,传变量到模板中,然后在render_template中通过关键词参数的方式传递过去,渲染模板页面。
请添加图片描述
···
···

请添加图片描述

3.加载前端模板页面并渲染,userpage_get.html

文章内容通过{{模板变量}}显示
请添加图片描述

二、重构(第一阶段)

1.超链接->引入javasript,调用函数(userpage_get.html)

请添加图片描述
点击“下一篇”或“上一篇”按钮时,不再使用超链接调用视图函数,而是调用load_next_article()和load_pre_article()函数,利用Ajax传输数据(文章内容),动态更新模板数据。
userpage_get.html
请添加图片描述

2.(user_service.py)视图函数直接调用Activity.py中的get_today_article函数,获得数据,封装成json格式,传递回模板页面

请添加图片描述

3.成功返回data,动态更新页面(userpage_get.html)

请添加图片描述

三、重构(第二阶段):解决按钮何时隐藏,何时显示问题

1.每次动态更新页面后检查是否存在上一篇,如果当前是第一篇浏览的文章,不存在上一篇文章时,隐藏按钮;不存在下一篇包含当前没有适合用户水平的文章或文章已经阅读完两种情况,以result_of_generate_article的值区分。

请添加图片描述

2.第一次访问页面时,“上一篇”按钮虽然存在但点击无效,不影响。

在视图函数新增代码段,当前是第一篇文章时,不实现后续功能,无响应。
请添加图片描述

四、代码审查

存在重复代码块,代码冗余

请添加图片描述

优化:将重复代码块封装成函数

请添加图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值