JS 页面刷新数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS 页面刷新数据相关的知识,希望对你有一定的参考价值。

javascript:history.go(-3) 我用这个语句返回三步到我的一个页面,但在返回去后如何直接刷新页面数据呢?返回去时显示的数据还是旧的记录。

我的代码:
sub SaveSuccess()
dim strErr
strErr=strErr & "<html><head><title>提交的信息已保存</title><meta http-equiv='Content-Type' content='text/html; charset=gb2312'>" & vbcrlf
strErr=strErr & "<table cellpadding=2 cellspacing=1 border=0 width=400 class='border' align=center>" & vbcrlf
strErr=strErr & " <tr align='center' class='news1'><td height='22'>提交的信息已保存</td></tr>" & vbcrlf
strErr=strErr & " <tr align='center' class='tdbg'><td><a href='admin_articleadd.asp'><< 继续添加</a></td></tr>" & vbcrlf
strErr=strErr & "</table>" & vbcrlf
strErr=strErr & "</body></html>" & vbcrlf
response.write strErr
end sub

应该怎么弄,求高手帮忙解答下.

Javascript刷新页面的几种方法:
1 history.go(0)
2 location.reload()
3 location=location
4 location.assign(location)
5 document.execCommand(‘Refresh‘)
6 window.navigate(location)
7 location.replace(location)
8 document.URL=location.href.
____________________________________________
框架页中:(框架页中其中一个子页)
top.location.reload(); 刷新整页
self.location.reload(); 刷新本页
window.parent.location.href='' 框架页重定向
_____________________________________________
自动刷新页面的方法:1.页面自动刷新:把如下代码加入<head>区域中<meta http-equiv="refresh" content="20">其中20指每隔20秒刷新一次页面.<body onload="opener.location.reload()"> 开窗时刷新<body onUnload="opener.location.reload()"> 关闭时刷新。
例:数据添加成功后弹出对话框并刷新页面
if (infoAction_Sort.Insert(info_Sort))

ScriptManager.RegisterStartupScript(this.UpdatePanel, this.GetType(), "alert", "alert('相册分类添加成功');window.location.reload();", true);

//Alert("相册分类创建成功");
//Response.Redirect(Request.Url.ToString());//刷新本页
this.txt_AddSort.Text = "";
this.txt_SortDepict.Text = "";
参考技术A 我们每请求一个页面,浏览器都会将它保存在本地
就这样保存了一个又一个。
javascript:history.go(-3) 的意思是,返回前3个去,
浏览器会把那个文件直接显示给你,而不是发一个请求,也不执行什么
所以这是不行的,建议你把javascript:history.go(-3)换成跳转.
参考技术B 我们每请求一个页面,浏览器都会将它保存在本地
就这样保存了一个又一个。
javascript:history.go(-3) 的意思是,返回前3个去,
浏览器会把那个文件直接显示给你,而不是发一个请求,也不执行什么
所以这是不行的,建议你把javascript:history.go(-3)换成跳转.本回答被提问者采纳
参考技术C 你要重新定义你的FORM的ONSUBMIT事件的,重新装载数据。 参考技术D document.getElementById("刷新的控件id名字(如LinkButton1)").click();

React JS 仅在我刷新页面时读取道具数据

【中文标题】React JS 仅在我刷新页面时读取道具数据【英文标题】:React JS Read props data only when I refresh the page 【发布时间】:2021-01-09 10:09:00 【问题描述】:

我将 React 与功能组件一起使用。当我登录时,我使用history.push('/dashboard') 将用户重定向到仪表板页面。当我在仪表板页面上进行控制台日志时,它会显示props 中的所有可用数据。但是数据不会在页面上呈现,它显示"Uncaught (in promise) TypeError: Cannot read property 'profile' of undefined"。当我刷新页面或在历史记录中使用 forceRefresh:true 时,一切正常。

侧边栏组件:

import React,useEffect from 'react';
import  Link,withRouter  from 'react-router-dom';
import  connect  from 'react-redux';
import  userActions  from '../../../_actions/users'
import 
    Sidebar,
    UncontrolledButtonDropdown,
    Avatar,
    AvatarAddOn,
    DropdownToggle,
    DropdownMenu,
    DropdownItem
 from './../../../components';

function SidebarTopA(props) 
    const  authentication  = props
    function logout()
        return (e)=>props.logout()
    
    return (
        <React.Fragment>
             /* START: Sidebar Default */
            <Sidebar.HideSlim>
                <Sidebar.Section className="pt-0">
                    <Link to="/" className="d-block">
                        <Sidebar.HideSlim>
                            <Avatar.Image
                                size="lg"
                                src=authentication.user.user.profile.profile_photo
                                addOns=[
                                    <AvatarAddOn.Icon
                                        className="fa fa-circle"
                                        color=authentication.loggedIn ? "success" :"warning"
                                        key="avatar-icon-fg"
                                    />
                                ]
                            />
                        </Sidebar.HideSlim>
                    </Link>

                    <UncontrolledButtonDropdown>
                        <DropdownToggle color="link" className="pl-0 pb-0 btn-profile sidebar__link">
           authentication.user.user.first_name authentication.user.user.last_name
                            <i className="fa fa-angle-down ml-2"></i>
                        </DropdownToggle>
                        <DropdownMenu persist>
                            <DropdownItem header>
                            authentication.user.user.email
                            </DropdownItem>
                            <DropdownItem divider />
                            <DropdownItem tag=Link to="/apps/profile-details">
                                <i className="fa fa-fw fa-user mr-2"></i>
                    Your Profile
                    </DropdownItem>
                            <DropdownItem divider />
                            <DropdownItem tag=Link to="/" onClick=logout()>
                                <i className="fa fa-fw fa-sign-out mr-2"></i>
                        Sign Out
                    </DropdownItem>
                        </DropdownMenu>
                    </UncontrolledButtonDropdown>
                    <div className="small sidebar__link--muted">
                    authentication.user.user.profile.job_title
                    </div>
                </Sidebar.Section>
            </Sidebar.HideSlim>
             /* END: Sidebar Default */

             /* START: Sidebar Slim */
            <Sidebar.ShowSlim>
                <Sidebar.Section>
                    <Avatar.Image
                        size="sm"
                        src=authentication.user.user.profile.profile_photo 
                        addOns=[
                            <AvatarAddOn.Icon
                                className="fa fa-circle"
                                color="white"
                                key="avatar-icon-bg"
                            />,
                            <AvatarAddOn.Icon
                                className="fa fa-circle"
                                color="success"
                                key="avatar-icon-fg"
                            />
                        ]
                    />
                </Sidebar.Section>
            </Sidebar.ShowSlim>
             /* END: Sidebar Slim */
        </React.Fragment>

    );



function mapState(state) 
    const  authentication  = state
    return  authentication ;

const actionCreators = 
    logout: userActions.logout

const connectedHomePage = withRouter(connect(mapState, actionCreators)(SidebarTopA));
export  connectedHomePage as SidebarTopA ;

【问题讨论】:

你能做代码沙箱吗? 【参考方案1】:

最后我用redux-persist包解决了。

我的商店设置是:

import  createStore, applyMiddleware  from 'redux';
import thunkMiddleware from 'redux-thunk';
import  createLogger  from 'redux-logger';
import rootReducer from '../_reducers';
import  composeWithDevTools   from 'redux-devtools-extension';
import  persistStore, persistReducer  from 'redux-persist'
import storage from 'redux-persist/lib/storage'
const persistConfig = 
    key: 'chedsk',
    storage,
  
const loggerMiddleware = createLogger();

const persistedReducer = persistReducer(persistConfig, rootReducer)
 
const composeEnhancers = composeWithDevTools(trace: true, traceLimit: 20);
export const store = createStore(
    persistedReducer,composeEnhancers( applyMiddleware(
        thunkMiddleware,
        loggerMiddleware
    ))
   
)
export const persistor = persistStore(store)

在 App 组件中我会这样做。

import  store, persistor  from './_helpers/store';
import  PersistGate  from 'redux-persist/integration/react'
render(
    <Provider store=store>
        <PersistGate loading=null persistor=persistor>
            <App />
        </PersistGate>
    </Provider>,
    document.querySelector('#root')
);

【讨论】:

【参考方案2】:

在渲染 SidebarTopA 时,配置文件信息似乎不可用。 我建议你保护它,并摆脱 forceRefresh。 将此添加到 SidebarTopA 中,在您现有的回报之上(并摆脱 forceRefresh):

if(!authentication.user || !authentication.user.user || !authentication.user.user.profile)
    return "Loading user profile, please wait..."

【讨论】:

您好,我补充说,在现有返回语句的顶部,错误已经消失,但现在我在页面加载时在侧边栏上什么也不显示,但与之前刷新页面时一样,它工作正常。 if(!authentication.user || !authentication.user.user || !authentication.user.user.profile) return '' return (//component) 请再次指导我哪里错了。 很抱歉听到这个消息。正如@adir abargil 所说,您应该创建并共享一个最小的可重现示例代码沙箱。 感谢@Louis 的帮助,我无法制作代码沙箱,因为所有组件都相互耦合,很难将它们拉出来。 现在,我们将 const authentication = props, authentication 分配给另一个变量 let auth = authentication 及其工作,但是,我仍然不知道为什么会发生这种情况。我也是这样做的在 nuxt js 及其工作但在 react js.data 中不工作的东西在控制台上可见,但在视图上不显示。

以上是关于JS 页面刷新数据的主要内容,如果未能解决你的问题,请参考以下文章

用JS怎么实现刷新页面后保留刷新前的页面上的数据显示

怎么刷新页面后,js就不执行了

JS弹窗提交关闭后,刷新父页面 在线等 急!!!

ajax刷新局部页面数据后js事件失效

js刷新当前页面

JS怎么实现页面刷新时,页面中的iframe不刷新