如何改变这个函数的执行顺序

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() 放在函数的第一行会发生这种情况,但似乎并非如此。

您无法刷新页面然后然后对其进行修改,因为您的代码所在的环境运行(连同您的代码)已经在重新加载页面的过程中被拆除并丢弃。

而是:

  1. 就地修改页面而不是刷新它。

  2. 编码查询字符串参数中的搜索信息并将 URL 分配给 window.location 以加载新页面,并在页面加载时读取和应用这些查询字符串参数。

  3. 使用 sessionStorage 临时存储它们,然后再次在页面加载时应用它们。

#1 是当今常见的方法。考虑到它的搜索信息,#1 也是一种很正常的方法。