我知道关于这个主题的帖子很少
但是,我想以稍微不同的方式提出这个话题:
我怎么知道用户是从特定页面回来的,比如说/product_pages/3
我将骨干用于我想跟踪用户历史记录的部分,该部分构建在 RoR 应用程序之上。我想知道用户是否从特定页面返回的原因是保持主干表单填充用户最初输入的值,但是如果用户来自其他页面,例如/provider_pages/14
,那么我想清除表单价值观。
尝试的解决方案:
HTML5 历史不会在浏览器之间持久存在(即使在 FF 和 Chrome 之间),并且经过尝试,它不是解决此问题的最佳解决方案;Backbone 历史不能解决问题,因为它只跟踪 Backbone 应用程序,每当用户退出主干应用程序时,Backbone.history 就会丢失状态;RoR 请求也不是一个解决方案,假设大多数用户将单击返回按钮返回到表单/搜索结果,并且“返回”按钮不会触发新请求:)
所以我对这个问题的解决方案有点困惑。
以下是一些代码:
表格:
<ul id="formfields">
<li>
<label>Driver type
<select id="driver-type" name="driver-type" class="ddl jqrequired">
options...
</select></label>
</li>
<li>
<label>Postcode
<input type="text" name="postcode" id="postcode_with_suburbs" style="width:207px" class="jqrequired postcode-with-suburb"></label>
</li>
<li id="date_insurance_required_section">
<label>Date insurance required
<input type="text" name="date_insurence_required" id="date_insurance_required" style="width:207px" class="jqrequired"></label>
<span style="display:none;" id="renewalDate"></span>
</li>
<li id="car-insurers-section">
<label>Your current car insurer (if applicable)
<input type="text" id="car-insurers" style="width:220px" class="ddl clearfix" class="jqrequired" placeholder="Please enter current insurer">
</label>
</li>
etc etc etc.....
通过获取请求在主干端设置值:and I assume here is the place where I need to keep track of users that are coming back
$("#car-insurers").val(results.Insurer);
$("#renewal_date").val(results.RenewalDate);
$("#date_insurence_required").val(results.InsuranceRequired);
$("#renewal-type").val(results.RenewalType);
$("#renewal-amount").val(results.RenewalAmount);
$("#driver-type").select2("val", results.DriverType);
$("#postcode_with_suburbs").val(results.Postcode);
$("#email").val(results.EmailAddress);
if (results.EmailSend == "on") {
$('#email-consent').prop('checked', true);
}