Javascript页面使用加载的代码,如何防止这种情况?

Javascript页面使用加载的代码,如何防止这种情况?,javascript,html,css,Javascript,Html,Css,我管理着一个课程管理系统(尤其是黑板),我遇到了一个问题,我必须自己解决,因为黑板无法识别这个问题。简而言之,在Blackboard中的后续Service Pack中呈现内容存在一个问题,该问题源于javascript问题。我的困境是: 此内容区域的框架尺寸由一个名为“setIFrameHeightAndWidth”的函数设置。我在Blackboard安装中找到了该文件,并在pastebin链接中列举了其内容: 我经常对这两行进行编辑 iframelement.style.height=ifr

我管理着一个课程管理系统(尤其是黑板),我遇到了一个问题,我必须自己解决,因为黑板无法识别这个问题。简而言之,在Blackboard中的后续Service Pack中呈现内容存在一个问题,该问题源于javascript问题。我的困境是:

此内容区域的框架尺寸由一个名为“setIFrameHeightAndWidth”的函数设置。我在Blackboard安装中找到了该文件,并在pastebin链接中列举了其内容:

我经常对这两行进行编辑

iframelement.style.height=iframelement.contentWindow.document.body.scrollHeight+frameHeight+300+'px'

iframelement.style.width='100%';(我自己做的100%的改变)

但当我保存此文件并重新加载页面时,更改并不总是保持/应用。下面是当我转到加载内容的特定页面并调用该页面中的函数时发生的情况

Blackboard获取page.js文件,然后将其复制到3个不同的文件中(原因未知),并将它们命名为2F88F5F765F4753D329E6FC3F898242.js、04785022C06B7A2CD3E35B74D652973C.js和A4B16A1C4776F93BE8C1A0BF21AB7C41.js,并将它们放在我们的外部黑板内容目录中,对于我的开发服务器,它是e:\blackboard\content\vi\BBLEARN\branding\uuuujs\uuuu

这些文件似乎是上一个page.js文件的副本,或者更确切地说是具有上一个page.js文件的属性。我已经证实了这一点,但如果我有时重新加载页面,更改不会持续,这就是为什么我认为会发生这种情况,这是我的问题

如果我使用Chrome或Firefox的inspector查看页面的资源,并搜索函数setIFrameHeightAndWidth,它将返回所有3个文件,即我上面提到的3个文件,其中包含字母数字名称,它们的更改没有反映出来。我怀疑如果之前访问过该页面,那么这3个页面会被缓存,我不希望发生这种情况。清除我的缓存可以解决这个问题,但如果可能的话,我不想让我们的用户群承担这个负担。我注意到在page.js文件的顶部有一个部分说:

仅包含此文件的内容一次-例如,如果此文件包含在lightbox中,我们不想重新运行
*所有这些-只需使用加载的版本。


代码中有什么东西阻止它被多次调用吗?有没有一种方法可以防止这个特定的页面被缓存,这样更改总是能够立即反映出来?谢谢。

强制刷新的传统方法是向GUID或类似的GUID添加虚拟查询字符串参数集,这本质上是唯一的。所以你的URL应该是,比如说,
ABCD.js?x=6ce5ced1-8ef3-4e80-aa69-f1613456ce71
。该GUID将在每个请求上生成,因此URL始终是唯一的。我不确定这是不是个好主意。如果您可以修改源代码,您可能只需要硬编码一些参数,以强制更新一次(如果您只需要这些)。那样的话,它在将来仍然会缓存,但是会得到你当前的更新。我只是在谷歌上搜索一下如何防止JS缓存,问题是我不能真正编辑源代码。源代码是基于所有这些内容动态生成的,比如黑板主题、javascript文件、嵌入式内容等等。没有任何特定的index.html或默认页面来显示源代码。我不认为你提出的想法有任何坏处,但它能被实现到.js文件本身而不是源html中吗?我不明白为什么,但如果我编辑缓存的3个页面,那么修复会立即生效,但决不会反过来。作为一名学生,我讨厌黑板。很高兴能完成这个应用程序。这是一个不错的软件,不幸的是,它只得到了公司大约50%的支持。他们想做的就是推广新功能和销售许可证。你知道什么是悲伤的,每次他们的支持电话给我在工作时,它总是像戴尔一样(比如说,如果你很懂技术的话,那些人真的不懂你说的话)。