gpt4 book ai didi

javascript - 我可以使用哪些方法来重新排列 javascript 函数的执行顺序?

转载 作者:行者123 更新时间:2023-11-28 10:34:45 25 4
gpt4 key购买 nike

如何重新排列独立于包含顺序的 JavaScript 函数执行顺序。

一个有帮助但不能完全回答我的问题的问题: Can you have multiple $(document).ready(function() sections? (答案是肯定的,并且它们按照添加到 jQuery.ready() 的顺序执行)。

我正在尝试让我的 javascript 在我的 BBG ninjawars.net 上感知已登录/未登录,以方便通知。 。我希望使用一个简单的系统,让服务器端 php 在页面登录时写出一个 javascript 函数调用 setLoggedIn() ,并写出对 clearLoggedIn() 的调用 注销时查看页面时:

<head>
...
<!-- All the global ninjawars javascript, defines the setLoggedIn(), clearLoggedIn(), and modifyPageLayout() functions and (currently) calls modifyPageLayout() within jQuery.ready() -->
<script type="text/javascript" src="js/nw.js"></script>

{if $logged_in} // Server-side check.
<script type="text/javascript">
<!--
setLoggedIn();
// -->
</script>
{else} // Server-side check found that the user was not logged in.
<script type="text/javascript">
<!--
clearLoggedIn();
// -->
</script>
{/if}
</head>

问题:

目前的顺序是:

  • 全局定义 setLoggedIn() 和clearLoggedIn()(在 nw.js 中)

  • 添加页面/信息修改代码,我们称之为modifyPageLayout(),需要将登录/注销通知给jQuery.ready()(在nw.js中)

    <
  • 在页面上的脚本标记中内联调用 setLoggedIn() 或clearLoggedIn()。

我不知道如何确保对setLoggedIn()或clearLoggedIn()的调用发生在modifyPageLayout()之前,modifyPageLayout()当前包装在jQuery.ready() block 中,因此每当加载DOM时就会运行.

  • 如果我将 setLoggedIn() 和clearLoggedIn() 添加到 jQuery.ready() block 中,它们将按照添加的顺序执行,因此顺序将变为:modifyPageLayout(),然后 setLoggedIn()setLoggedOut() 因此 jQuery.ready() block 中的所有内容都无法实现意图。

  • setLoggedIn() 和clearLoggedIn() 目前依赖于nw.js 定义的代码,因此我无法调用它们在包含 nw.js 之前。

一个潜在的解决方案:

我可以延迟修改PageLayout函数,将其写为:

modifyFunction = modifyPageLayout; // Non-executed first-class function variable. (created in nw.js)

setLoggedIn(); // inline in the head of the page
modifyFunction(); // inline in the head of the page

还有其他解决方案吗?

最佳答案

也许我错过了一些东西,如果我错过了,很抱歉。

但是对于 setLoggedIn() 和clearLoggedIn(),您不希望它们在有人单击登录或退出时发生吗?那么你可以在 document.ready 中添加一个事件处理程序来处理这个问题。

据推测,当某人登录或注销时发生某些事情的事实可以用于modifyPageLayout函数来决定显示什么内容以及如何显示。

无论如何,我不确定问题是否比这更复杂

关于javascript - 我可以使用哪些方法来重新排列 javascript 函数的执行顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1798424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com