如何改变这个函数的执行顺序
How to change this function execution order
我有这个搜索功能,应该先刷新页面(清除页面中的内容),然后显示结果。
发生的情况是页面先显示结果然后刷新页面。
searchForm.addEventListener("submit" , function(event)
{
window.location.reload(); //should do this first
event.preventDefault();
searchedName.innerText = searchBar.value;
changeLogoImage(searchedName);
giveCompanieSymbol(searchedName);
TurnVisible(companyLogo);
TurnVisible(overviewDataContainer);
TurnVisible(separadoresAnalise);
TurnVisible(personaliseParagrafo);
}
)
我想不出一个 easy/simple 解决方案来执行此操作而不创建另一个函数或单独的事件。有没有更简单的方法来表达这个功能:
“首先重新加载页面,然后显示结果。” ?
我认为如果我将 reload() 放在函数的第一行会发生这种情况,但似乎并非如此。
您无法刷新页面然后然后对其进行修改,因为您的代码所在的环境运行(连同您的代码)已经在重新加载页面的过程中被拆除并丢弃。
而是:
就地修改页面而不是刷新它。
或
编码查询字符串参数中的搜索信息并将 URL 分配给 window.location
以加载新页面,并在页面加载时读取和应用这些查询字符串参数。
或
使用 sessionStorage
临时存储它们,然后再次在页面加载时应用它们。
#1 是当今常见的方法。考虑到它的搜索信息,#1 也是一种很正常的方法。
我有这个搜索功能,应该先刷新页面(清除页面中的内容),然后显示结果。
发生的情况是页面先显示结果然后刷新页面。
searchForm.addEventListener("submit" , function(event)
{
window.location.reload(); //should do this first
event.preventDefault();
searchedName.innerText = searchBar.value;
changeLogoImage(searchedName);
giveCompanieSymbol(searchedName);
TurnVisible(companyLogo);
TurnVisible(overviewDataContainer);
TurnVisible(separadoresAnalise);
TurnVisible(personaliseParagrafo);
}
)
我想不出一个 easy/simple 解决方案来执行此操作而不创建另一个函数或单独的事件。有没有更简单的方法来表达这个功能:
“首先重新加载页面,然后显示结果。” ?
我认为如果我将 reload() 放在函数的第一行会发生这种情况,但似乎并非如此。
您无法刷新页面然后然后对其进行修改,因为您的代码所在的环境运行(连同您的代码)已经在重新加载页面的过程中被拆除并丢弃。
而是:
就地修改页面而不是刷新它。
或
编码查询字符串参数中的搜索信息并将 URL 分配给
window.location
以加载新页面,并在页面加载时读取和应用这些查询字符串参数。或
使用
sessionStorage
临时存储它们,然后再次在页面加载时应用它们。
#1 是当今常见的方法。考虑到它的搜索信息,#1 也是一种很正常的方法。