pjax = pushState + ajax
由于这是一个比较通用的组件,所以我把它写成了slim的Middleware (如果不知道middleware是什么或者怎么写,可以看这里)
大概原理是在slim框架渲染之后,输出之前,对dom结构进行分析,摘取出pjax所需要的部分,然后将这部分的内容作为response返回给浏览器的ajax请求
预览: 码农文库 点击分页可以看到效果
| 代码如下 | 复制代码 |
|
$app->add(new SupportPjaxMiddleware()); namespace Support; use SlimMiddleware; } private function fetchContents(Crawler $crawler, $container) { $content = $crawler->filter($container); if (!$content->count()) { $this->app->stop(); } return $content->html(); } private function setUriHeader(Response $response, Request $request) { $query = $request->get(); unset($query['_pjax']); $response->header('X-PJAX-URL', $request->getResourceUri() . '?' . http_build_query($query)); } } |
|
洋果子店rose最新版本
洋果子店最新版是一款十分容易让人垂涎的开店经营类手游。游戏玩
明日大亨最新版
明日大亨手游,一个非常经典有趣的模拟经营类型的商战手游,在游
早安我的少年日服最新版2024
早安我的少年日服是一款治愈恋爱手游,清新明亮的游戏画面,让你
我的世界基岩版1.16正式版
我的世界基岩版是一款模拟经营手游,游戏采用的是经典像素玩法,
早安我的少年最新版2024
早安我的少年是一款养成恋爱手游,在这款游戏中,玩家们将可以体