我试图做一个不涉及任何特定服务器端技术的最小示例。所以我刚刚用 bash 生成网页并用 cgi 提供它。
$ mkdir example
$ cd example
$ cat > index.html
<meta http-equiv="Refresh" content="0; url='/cgi-bin/index.html'" />
$ mkdir cgi-bin
$ cat > cgi-bin/index.html
#! /usr/bin/env bash
set -e
echo Content-Type: text/html
echo
sed "s/NEW/$RANDOM/g" << EOF
<html>
<head>
<title>DEMO</title>
<script src="/node_modules/@hotwired/turbo/dist/turbo.es2017-umd.js"></script>
</head>
<body>
<h1>DEMO</h1>
<p><small>lucky bonus number: $RANDOM</small></p>
<turbo-frame id='example-frame'>
<a href="?NEW">NEW turbo frame</a><br />
<a href="?NEW" data-turbo-frame="_top">NEW full page</a>
<p>number in query string: $QUERY_STRING</p>
</turbo-frame>
<br />
</body>
</html>
EOF
$ chmod +x cgi-bin/index.html
$ npm install --save @hotwired/turbo@7.0.1
$ python3 -m http.server --cgi # or whichever server
这将创建一个如下所示的网页:
然后,当您单击 turbo frame reloader 链接时,您会得到以下信息:
幸运红利号码没有改变,因为它只加载了turbo frame,但是turbo frame里面显示的查询字符串号已经更新了。
整页 Turbo 链接执行此操作:
它会更新幸运红利号码(turbo 框架之外的内容)并更新 url。(但我确信它工作正常。我已经检查了网络选项卡。它每次只进行一次提取。)
我想做的事:
我想要一个只更新涡轮帧的链接(在我的示例中保持幸运奖金数字不变)但也更新 url。我猜这个用例是如果你有一个始终保持不变的横幅或菜单,但是一个主 turbo 框架,其中包含应该对应于 url 的所有页面特定内容。
所以在这个例子中,我希望看到页面上的查询字符串和实际的查询字符串更新,只留下“幸运奖金号码”不变。