我有一个仅通过首页上的页面加载触发的功能(预加载屏幕)。
问题在于它每次用户返回首页时都运行。
我一直在使用sessionStorage来使该功能在每个浏览器会话中运行一次,但是我对JQuery还是很陌生,无法弄清楚它的去向/其实际含义。
非常感谢您的帮助。谢谢!
这是我的代码...
- name: LDAP Settings
hosts: myserver
vars:
mark_1: 'include location="conf/basicUserRegistry.xml"/'
mark_2: 'include location="conf/ldapUserRegistry.xml"/'
tasks:
- replace:
path: /opt/IBM/server/liberty/servers/clm/server.xml
regexp: "^<!--{{ mark_2 }}-->"
replace: "<{{ mark_2 }}>"
- replace:
path: /opt/IBM/server/liberty/servers/clm/server.xml
regexp: "^<{{ mark_1 }}>"
replace: "<!--{{ mark_1 }}-->"
backup: yes'
答案 0 :(得分:2)
要在每个会话中运行一次,请使用以下命令存储用户在当前会话中已经执行过此操作:
$(function() {
var visited = sessionStorage['visited'] || false;
if (visited) {
$('#loader-wrapper').addClass('hidden');
} else {
sessionStorage['visited'] = true;
}
});
默认情况下(在HTML中)将hidden
类添加到div并仅在其第一次访问时将其删除可能更有效/更简单:
$(function() {
var visited = sessionStorage['visited'] || false;
if (!visited) {
$('#loader-wrapper').removeClass('hidden');
sessionStorage['visited'] = true;
}
});
答案 1 :(得分:0)
您应该写:
$(document).ready(function() {
$('#loader-wrapper').addClass('hidden');
});
但是您对每个浏览器会话仅运行一次的问题对我来说没有意义。您希望函数在页面加载时执行。 $(document).ready(...)
仅在加载DOM时运行一次函数。当用户与页面互动时,它将不会稍后运行(除非它当然会触发点击来重新加载页面)。