如何只获取一次脚本

2023-12-30

所以这是一个简化的问题(我将其用作参考,以使这个问题变得简单......)

如果超过 x 像素,则使用 resize 来 getScript (jQuery) https://stackoverflow.com/questions/11388247/using-resize-to-getscript-if-above-x-pixels-jquery/11388449

如果我调用一个获取脚本的函数,那么如果该函数再次触发,它将不会再次加载脚本。

^ 该代码就是其中的内容。

getScript - 如何仅在尚未调用时调用 https://stackoverflow.com/questions/5845230/getscript-how-to-only-call-if-not-already-called

是一个例子,但我不久前尝试过该代码。

EX:

$(function() 
{
  var gotscript=false;   
  $(window).resize(function() 
  {
      //Dekstop
      if (window.innerWidth >= 768) 
      {
           if (!gotscript) 
           {
               // GET DESKTOP SCRIPT TO KEEP THINGS QUICK
               $.getScript("js/desktop.js", function() 
               { 
                   gotscript=true;
               });
           }
       }
       if (window.innerWidth < 768) 
       {
           if (window.innerWidth >= 768) 
           {
               if (!gotscript) 
               {
                   // GET DESKTOP SCRIPT TO KEEP THINGS QUICK
                   $.getScript("js/desktop.js", function() 
                   { 
                       gotscript=true;
                   });
               }
            }
       }
   }) .resize(); // trigger resize event
})

这会在任何窗口调整大小事件上加载脚本。

我忘了提...

var $window = $(window);

function checkWidth() {
    var windowsize = $window.width();

    ////// LETS GET SOME THINGS IF IS DESKTOP 
    var $desktop_load = 0;
    if (windowsize >= 768) {
        if (!$desktop_load) {
            // GET DESKTOP SCRIPT TO KEEP THINGS QUICK
            $.getScript("js/desktop.js", function() { 
                $desktop_load = 1;
            });
        }
    }
    ////// LETS GET SOME THINGS IF IS MOBILE
    if (windowsize < 768) { 

    } 
}

// Execute on load
checkWidth();

当窗口大小高于 768 时,这将起作用,并且由于它只加载此函数一次,因此不会再次加载脚本。如果小于 768,然后高于 768,我该怎么做才能使脚本加载,并且不再加载它。


我希望这个问题与getScript是异步的,因此无法访问$desktop_load变量位于单独的函数作用域内。

解决方法是使$desktop_load一个全局变量。

尝试这个,

var $desktop_load = 0; // <~~ move the variable into global scope
function checkWidth() {
    var windowsize = $window.width();

    ////// LETS GET SOME THINGS IF IS DESKTOP 
    // var $desktop_load = 0; // <~~ remove the variable from local scope

另外,这将避免您每次运行时都将变量重新设置为 falsecheckWidth函数,因为在你测试之前它总是错误的 - 这不是你想要的。

附注使用起来很不寻常$在 javascript 中为变量添加前缀,除非它是缓存的jQuery object.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何只获取一次脚本 的相关文章

  • AJAX jQuery.load 与 jQuery.get

    使用 jQuery 进行 AJAX 调用时 什么时候应该使用 load url data callback 方法 什么时候应该使用 jQuery get url data callback type 方法 首先这两个功能是完全不同的 loa
  • 检查复选框是否被选中? [复制]

    这个问题在这里已经有答案了 如何通过 jQuery 检查复选框是否被选中 我可以只向元素添加 ID 或类并执行此操作吗 if element val 1 do stuff if element is checked checkbox is
  • jQuery 无法在外部 JavaScript 中工作

    我是 jQuery 新手 遇到了一些奇怪的问题 我正在使用 jQuery 的change and click方法 在我的 HTML 文件中使用时它们工作正常
  • Android 上的 Chrome 强制隐藏地址栏

    我最近开发了一个获取混合 http https 内容的网站 因此 我总是将地址栏显示在顶部 它不会像其他网站那样自动隐藏 这就是我要说的 This https planetkde org 是网站的链接 内容是从各种来源获取的 因此无法过滤非
  • Jquery Smoothscroll 函数 - 如何控制动画速度?

    有人可以帮助我吗 尝试通过我的平滑滚动和控制速度添加 慢 功能 希望能够实现真正的 平滑滚动 以下是代码 document ready function smoothscroll live click function e html bod
  • 页面其余部分完成加载后延迟加载 html5 视频

    我有一个视频元素用作我正在构建的页面底部部分的背景 我试图通过将 src 存储为 data src 属性并使用 jQuery 在其他资源加载后将其应用到 src 属性 因为它不是英雄图像或任何东西 我想加载海报以节省加载时间 然后稍后加载视
  • 单击时阻止 jquery TABS 跳跃/向上滚动?

    我使用的引擎调用 jquery tabs js 脚本来处理选项卡功能 问题是 只要选项卡位于页面顶部并且您单击链接 它们就会快速向下滚动到页面底部 我已经尝试解决这个问题几个小时了 所有解决方案都指向类似的答案 但没有一个对我有用 fn t
  • 如何创建到任何 fancybox 框的直接链接

    我需要当我单击任何使用 fancybox 的内容时 它会生成一个特定的 URL 因此当我将此链接发送给某人时 它会打开我想要的特定框 例如 fancybox net home当我点击第一张图片时 链接仍然存在fancybox net hom
  • Twitter bootstrap 远程模式每次都显示相同的内容

    我正在使用 Twitter bootstrap 我已经指定了一个模式 div class modal hide div class modal header div div
  • 迭代 div 内的输入

    我试图通过 jQuery 迭代放置在特定 div 上的所有输入 但没有响应 我无法使用警报查看输入的值 我究竟做错了什么
  • 使用 jQuery 修改 svg 文件

    我有一个 svg 文件 其中包含一些形状和一些文本 我想在运行时修改 svg 以便某些形状可以更改颜色 某些文本可以更改其内容 假设我的外部 svg 文件中只有两个元素 圆圈 1 具有该 id 的蓝色实心圆圈 text1 包含该 id 的
  • 如何以 JavaScript 编程方式获取旋转的 svg 文本边界

    我正在动态渲染 SVG 图像并创建旋转文本 如果旋转的文本与其他文本重叠 我需要删除该文本 但我无法测量旋转的文本来创建边界并检查下一个标签文本区域 我创建了 3 个 SVG 元素来解释 SVG 1 显示重叠的文本 SVG 2 显示重叠的旋
  • “过滤”JSON 以获得唯一键并获取所有相关值

    找到一个组中所有可能的相关值的最佳方法是什么 var table group a stuff new group a stuff old group b stuff newOld group b stuff old group c stuf
  • 更改模板标签 <# {% {{ 等后,John Resig 的微模板出现语法错误

    我在使用 John Resig 的 Micro 模板时遇到了一些麻烦 谁能帮我解释为什么它不起作用 这是模板 以及发动机的改装部分 str replace r t n g split join t replace gt t g 1 r re
  • 如何制作复选按钮? (带有标签的隐藏复选框作为按钮:仅限 CSS)

    Using 方法1 创建可点击标签 https stackoverflow com a 6293626 1326147 用 CSS 隐藏复选框 https stackoverflow com a 18078908 1326147 and 使
  • 如何隐藏 URL 中的 ID

    我以前在 Stack Overflow 上见过这类问题 但没有一个真正有帮助 我也用谷歌搜索过 但没有骰子 我想知道如果用户单击选项卡本身是否可以隐藏 URL 中的 ID 这是网页 www planet nu dev new experia
  • 如何用方向键移动div

    我想使用 jQuery 用箭头键移动 div 所以右 左 下 上 找到了我想要完成的演示here http atomicrobotdesign com blog htmlcss move objects around the canvas
  • 使用 jQuery animate 时,有没有办法隐藏 webkit 浏览器中显示的工件?

    我正在使用 jQuery animate 在网页上的项目中滑动 由于某种原因 只有在 webkit 浏览器中 元素动画的空间中才会出现伪影痕迹 有没有办法阻止或隐藏这种情况 一旦您加载此处的页面 它们就会出现在轮播上 http www my
  • jquery 中 DOM 元素的手动垃圾回收是否可以提高浏览器性能?

    在性能范围内 删除不再需要的元素是否有意义 或者浏览器是否对代码中未进一步引用的 dom 元素执行自动垃圾收集 some element fadeOut 1000 function el el remove lt does this mak
  • 如何循环遍历颜色数组以更改按键背景(按下/向下)

    互联网 如果这与其他人没有什么关系 请原谅我 但我会将其留在这里 以防这是一个有效的问题 我正在尝试创建一个文本区域字段 其中用户每次按下键 a z 都会触发背景颜色更改 在数组中列出 我一直在用 JQuery 做这件事 我想我已经很接近了

随机推荐

  • 删除指针是否也会删除它所指向的内存?

    如果我有一个像这样的指针 int test new int 我创建了另一个指向的指针test像这样 int test2 test 然后我删除test2 delete test2 这是否意味着它将删除test以及 或者我必须打电话delete
  • 动画完成后所有 UIElement 都变得不可访问

    我正在尝试通过具有每个灯光坐标的 CGRect 数组来实现城市灯光动画 然后围绕这些 CGRect 创建 UIView 这个逻辑 感谢Darren https stackoverflow com users 1077601 darren用于
  • 如何以八度音程抑制命令的输出?

    在 Octave 中 我可以抑制或隐藏在行末尾添加分号的指令的输出 octave 1 gt exp 0 1 ans 1 0000 2 7183 octave 2 gt exp 0 1 octave 3 gt 现在 如果函数显示文本 例如使用
  • 遍历批处理文件中的文件夹和文件?

    这是我的情况 项目的目标是将一些附件迁移到另一个系统 这些附件将位于父文件夹中 比方说 Folder 0 see 这个问题的图 https serverfault com questions 147902 windows command l
  • PHP:简单的正则表达式来匹配长度?

    我正在创建一个注册系统 需要使用 REGEX 并且更喜欢 检查姓名 通行证等 到目前为止我得到的是 Check so numbers aren t first such as 00foobar preg match d a z0 9 iD
  • “@reify”有什么作用以及何时使用?

    我在用户体验设计金字塔教程 http docs pylonsproject org projects pyramid tutorials en latest humans creatingux step06 index html 我不太明白
  • 使用 Angular-cli 在 Angular2 中进行本地化

    Angular 有没有本地化工具2使用时Angular cli 我遇到了这个链接 https devblog dymel pl 2016 11 03 angular2 and i18n translate your app 从 11 月开始
  • 安装 AllegroServe

    我目前正在阅读 Peter Seibel 的书 Practical Common Lisp 正在阅读第 26 章 Web 编程 在第 366 页 它说 第一步是将 AllegroServe 代码加载到 Lisp 图像中 在 Allegro
  • Android 上的 libcurl CURLE_SSL_CACERT_BADFILE 错误

    所以我尝试将 libcurl 与 JNI 一起使用 但它返回 CURLE SSL CACERT BADFILE 错误 这是我的代码 JNI 端 static size t WriteCallback void contents size t
  • Tkinter 在 Frames 中添加菜单栏

    我正在使用此处答案中发布的代码在 tkinter 中的两个框架之间切换 https stackoverflow com questions 7546050 switch between two frames in tkinter作者 Bry
  • Javascript:如何删除for循环中的最后一个逗号

    如何从此函数中删除最后一个逗号 for var i 0 i lt 100 i if i 2 0 div innerHTML l else div innerHTML 首先 使用数组而不是字符串来求和字符串 这样速度更快 第二 var arr
  • 如何制作长度为5的随机数字和字母字符串? [复制]

    这个问题在这里已经有答案了 可能的重复 这是生成随机字符字符串的好方法吗 https stackoverflow com questions 976646 is this a good way to generate a string of
  • jQuery ui Sortable 可以表现得像 gridster 吗?

    是否可以得到jQuery ui 可排序网格 http jqueryui com sortable display grid表现得像gridster http gridster net 为什么不使用网格斯特 因为它不适用于 IE9 以下的任何
  • 如何使用 ggrepel 抑制警告

    ggrepel允许通过排斥彼此太近的标签来避免文本标签重叠 该算法取决于查看窗口大小 并且当窗口大小更改时会发生回调 如果算法无法避免给定窗口大小的重叠 则会发出警告 Warning messages 1 ggrepel 178 unlab
  • 转换函数指针

    我正在编写一个函数 它接收一个指向比较函数的指针和一个数组MyStructs并应该根据比较函数对数组进行排序 void myStructSort struct MyStruct arr int size int comp const str
  • 更改 iOS XCode 项目中的产品名称宏

    我在上面构建了我的 iPhone 代码苹果的示例项目 http developer apple com library ios samplecode LazyTableImages Introduction Intro html 当应用程序
  • UTF8 与宽字符?

    我似乎在思考某些事情时遇到了一些困难 我正在尝试创建一个 C 函数来将 UTF8 转换为 Wide 我开始谷歌搜索 发现了 Boost 和 ICU 两者看起来都太大了 然后我找到了 utf cpp 头库 看起来不错 我通过这里的一些线程发现
  • 将文本设置为整数值

    我想设置一个TextView作为整数的值 希望像这样 tv setText int 我尝试了这个 但出现了这个错误 另外 我的整数值在另一个类中 D AndroidRuntime Shutting down VM E AndroidRunt
  • 使用 python-pptx 添加项目符号列表

    我正在使用 python pptx 库进行 pptx 操作 我想在 pptx 文档中添加项目符号列表 我使用以下代码片段添加列表项 p text frame add paragraph run p add run p level 0 run
  • 如何只获取一次脚本

    所以这是一个简化的问题 我将其用作参考 以使这个问题变得简单 如果超过 x 像素 则使用 resize 来 getScript jQuery https stackoverflow com questions 11388247 using