解决ThinkJS项目开发中页面跳转报错问题
2016-11-14 01:05
477 查看
很多时候在我们查询某一项数据时,在数据过多的时候我们会选择分页展示,但是很多时候会发现在进行页面跳转时会出现报错,报错内容是数据库查询条件为空。
保存代码之后我们返回页面从新测试便会发现问题已经完美解决。
以上便是问题的解决方法,如若查看更多文章请点击进入我的个人博客
问题分析
其实问题很简单,报错的原因是因为代码获取到的查询条件为空,因为查询条件是由上一页面通过Form表单提交过来的数据,然后我们通过this.post方法获得值;但是当我们进行页面跳转的时候其实就是刷新了一下当前的页面,并不会有页面再次提交到数据到当前页面来,因此自然无法获取到查询条件,报错也就可以理解了。
解决思路
如果页面跳转的时候我们无法再次获取到值,那么我们就可以考虑当有页面通过Form表单提交数据到当前页面时,我们在查询数据的同时把数据存储起来;当跳转页面时,我们可以把存储的数据取出来继续进行数据查询;当有页面再次通过Form表单提交数据到当前页面时,我们查询数据的同时更新下存储的数据,这样便可以解决我们所遇到的问题了。解决方案
问题关键所在无非就是我们如何进行数据存储,在这里我们可以使用ThinkJS提供的
CACHE存储,存储我们所需要的数据。
Cache配置代码
在common模块
config文件中创建
cache.js,代码如下:
'use strict'; /** * Created by arter on 2016/11/14. */ export default { type: "file", //缓存类型 timeout: 6 * 3600, //失效时间,单位:秒 adapter: { //不同 adapter 下的配置 file: { path: think.RUNTIME_PATH + "/cache", //缓存文件的根目录 path_depth: 2, //缓存文件生成子目录的深度 file_ext: ".json" //缓存文件的扩展名 }, redis: { prefix: "thinkjs_" }, memcache: { prefix: "thinkjs_" } } };
调用Cache方法
示例代码:let taoCache = null; if(!think.isEmpty(formVal)){ this.assign('formVal',formVal); this.cache('formVal',formVal); }else{ formVal = await this.cache('formVal'); }
保存代码之后我们返回页面从新测试便会发现问题已经完美解决。
以上便是问题的解决方法,如若查看更多文章请点击进入我的个人博客
相关文章推荐
- 网站开发进阶(三十七)JSP页面跳转问题解决
- Android混合开发之Activity类与html页面之间的相互跳转(并解决黑屏问题)
- 网站开发进阶(三十七)JSP页面跳转问题解决
- Widget开发心得 解决跳转页面和SQLite类问题
- Android混合开发之Activity类与html页面之间的相互跳转(并解决黑屏问题)
- 如何解决在java开发中java代码和jsp页面中出现路径因为项目名称的变化(也就是应用名)的问题?
- Android混合开发之Activity类与html页面之间的相互跳转(并解决黑屏有关问题)
- Android混合开发之Activity类与html页面之间的相互跳转(并解决黑屏问题)
- 解决IDEA开发JavaWeb项目修改了HTML或Servlet/JSP后刷新浏览器无法及时显示修改后的页面的问题
- 项目开发中遇到的一些问题--登录时跳转原页面
- iOS开发 高德地图 解决点击大头针跳转页面 返回无法点击的问题
- 解决SSH项目中Action跳转之后,页面样式、图片丢失的问题
- 项目开发过程中解决页面编码问题
- android_weex安卓端页面跳转如果装几个weex项目会弹窗选择打开 问题解决
- Android混合开发之Activity类与html页面之间的相互跳转(并解决黑屏问题)
- Struts2.0页面跳转css无效问题的解决方法
- 解决VS2008 开发Windows Mobile 项目生成速度慢的问题
- 【转】解决VS2008 开发Windows Mobile 项目生成速度慢的问题
- window.location.reload()--解决JS页面跳转ie,firefox,opera不兼容问题
- 解决VS2008 开发Windows Mobile 项目生成速度慢的问题