【问题标题】:ajax and $.getScript() to get a new scriptajax 和 $.getScript() 获取新脚本
【发布时间】:2011-02-24 16:09:12
【问题描述】:

我正在尝试动态添加一个 js 函数,所以我读到了 $.getScript()。如果我错了,请纠正我,但似乎$.getScript() 只会调用公共文件夹中已经存在的 .js 文件,并且只会“加载”它并使其可用,但被调用的 js 文件本身是只是一个静态js。我要做的是调用一个动态js脚本,这个js脚本的内容变化很大,所以它必须来自服务器。

  • 我认为单独使用$.getScript() 是不可能的,不是吗?
  • 如果没有,我可以制作一个返回函数语法的 ajax,但是如何以某种方式将其添加到当前的 js 中,或者如何为它创建一个 js 文件并加载该 js?
  • 我可能想稍后删除新的 js,但这不是优先事项。

那么$.getScript() 可以帮助解决这个问题还是$.getScript() 和.ajax 的组合?

【问题讨论】:

  • 你用什么来提供动态脚本?
  • @Pekka 我将制定 js 函数 function test(){ } 并从 php 服务器返回此脚本。目前尚不清楚我是否需​​要将其作为 .js 文件或仅作为函数定义的文本返回,但我认为两者都可以根据需要完成。
  • 只是指向PHP文件,文件的扩展名没有意义。

标签: javascript jquery ajax getscript


【解决方案1】:

Pekka 的评论是正确的 - jquery 不在乎文件的扩展名是什么。

$.getScript("dynamicScript.php") 只要该文件输出有效的脚本(不需要脚本标签)就可以正常工作

【讨论】:

  • 所以当我调用这个文件时,js 内容是存储在某个地方以便站点可用,还是每次需要时都必须调用它?
  • 函数、变量等将在执行时存储到内存中,前提是它们不会被隐式或被范围破坏。如果您使用 OO 模式,例如您的脚本返回一个对象字面量,如:window.APP={...}应该可用于会话的剩余部分,直到销毁。它需要在每个呼叫情况下为每个用户加载。默认不会缓存。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-29
  • 2010-10-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多