如何更改此函数执行顺序

问题描述

我有这个搜索功能,它应该先刷新页面(清理页面中的内容)然后显示结果。

发生的情况是页面显示结果,然后刷新页面


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);
    }
)

如果不创建另一个函数或分离的事件,我想不出一个简单/简单的解决方案。有没有更简单的方法来说明这个功能

“首先重新加载页面,然后显示结果。” ?

我认为如果我将 reload() 放在函数的第一行会发生这种情况,但似乎并非如此。

解决方法

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

相反,要么:

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

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

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

#1 是当今常用的方法。鉴于它的搜索信息,#1 也是一种很正常的方法。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...