注意事项
(保证业务逻辑的正确性的前提下):当一个ajax页面里需要再次进行ajax请求时,需要将嵌套的那个ajax设置为同步加载方式。
核心原因:页面需要刷新两次,但其实只刷新了一次。
先看看我的案发过程:
显示页面:
左侧查询商品,右侧部分用AJAX局部刷新页面显示查询结果。
而叶子类目的实现是在AJAX请求中再次使用AJAX查询,返回叶子类目的结果。
查询叶子类目的方式如下:
当不加参数async时,表示ajax默认使用的是异步加载方式,当我们将其设置为同步加载方式时:
刷新前台页面,可以发现叶子类目中出现了数据:
原因:
外部页面请求AJAX时异步方式,请求后直接返回,返回后直接呈现页面数据,不会等待嵌套在其中的那个Ajax请求返回后呈现数据(因为内部嵌套的ajax也是异步请求)
而当内部嵌套的ajax设置为同步请求时,外部页面发起请求后必须要等待内部的ajax请求带其数据返回后才能返回,所以此时叶子类目页面才会呈现数据。