今天遇到一个很奇怪的现象,后来发现原来是Ajax的get方式,加载一次之后,就不在访问数据库,而post方式每次都会访问一次数据库
案例需求,在点击“项目信息列表”的记录行时,联动加载“项目接口信息列表”
$(#projectGrid#).datagrid({ onClickRow:function(rowIndex,rowData){ var url = ROOT_PATH + "/projectInterface/queryProjectInterfaceList.do?pid="+rowData.mdId; $.ajax({ type: "GET", url: url, success: function(result){ console.info(result); var converData = $.parseJSON(result); $("#projectInterfaceGrid").datagrid("loadData",converData); // 加载数据 } }) } });
Debug发现,首次点击记录行,执行完后台SQL语句的日志打印,再点击之后,N次发现也不会访问数据库再打印日志记录,但是Ajax的success方法依然执行,这让我有一种感觉加载了缓存的感觉。
当我在数据库中修改了“项目接口信息列表”的记录数据时,点击”项目信息列表“记录行,显示的依然是之前的旧数据,与数据库实际数据不符,后来发现,将GET类型修改为POST方式之后,每次点击记录行都会重新进行数据库查询操作,与实际的数据一致