Loading...
php读取文件,并且可以下载很简单header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="baidu_logo.jpg"'); header('Content-Transfer-Encoding: binary'); readf...
传统的ajax都是由客户端主动去请求,服务端才可以返回数据而sse是建立一个通道,并且在断线后自动重连,由服务端去推送,不需要客户端去主动请求,只需要建立通道websocket是双向通信 客户端可以利用通道推送数据给服务端 服务端也可以推送数据给客户端在有些场景,例如用户端调起支付,没有返回支付通知,需要向后端请求,获取这笔订单的支付结果例如微信公众号内使用支付宝支付,是调不起来的,只能引导...
pjax实际上就是ajax加window.history.pushState的结合例如一个数据表格的分页场景如果是ajax,我们点击翻页,将page和limit传给后端,后端返回数据和总数,我们分页,看起来没什么问题但是如果翻了几页以后,用户点击了刷新,那么就将回到第一页,因为当翻页的时候url是没有变化的如果是pjax,则可以在发送ajax请求以后,利用window.history.pus...
从tp5过渡过来的,默认select查询是返回二维数组,tp6返回数据集,虽然官方说和数组操作基本无区别但是有些时候还是数组好用 例如$arr[$k][0] = "test"这种间接修改,在默认返回的数据集中,是报错的,但是数组是可以这样操作的修改tp6目录下的/vendor/topthink/think-orm/src/db的BaseQuery.php如图所示,将图中画红框的位置删除,并且...
redis缓存应在model层去做在进行数据库查询之前,我们可以将传进来的数据库查询条件,和model名进行拼接 将得到的值作为key去redis查询是否为空,如果为空,则执行数据库查询操作,并且将查询到的结果,存入redis,并设置有效期如果redis查到了值,则直接从redis中取出值,直接return,不执行数据库操作例如一个商品详情页,如果后台修改了该商品,则我们需要删除这个商品的缓...