Javascript包含动态SRC技术="url"

标签 javascript performance html

是否可以(并且是一个好主意)通过哈希 URL 将动态数据传递到 JavaScript 包含文件?

如:

<head> <script src="scripts.js#x=123&y=456"></script> </head>

我正在寻找动态构建页面中内联 js 的替代方案:

<head> 
    <script src="scripts.js#x=123&y=456"></script> 
    <script>
       $( document ).ready(function() {
          pageInit(123, 456)
       });
    </script>
</head>

避免内联 js 是个好主意吗?如何在不使用创建不必要的往返网络请求的 ajax 的情况下传递动态数据?

注意: hash bang url 很特殊,因为浏览器在检查缓存时会忽略 url 的哈希部分。至少对于 html 文件来说是这样。

所以所有这些都将重用缓存中的index.html文件:

index.html
index.html#x=123
index.html#x=345345
index.html#x=2342&y=35435

同样的原则也适用于 javascript 文件。我希望实现的是在页面之间重用 script.js 的缓存版本。

转到index.php,包含以下内容:

<head> <script src="scripts.js#x=123&y=456"></script> </head>

然后去 fun.php 包含这个

<head> <script src="scripts.js#x=898756465&y=5678665468456"></script> </head>

然后去see.php包含这个

<head> <script src="scripts.js#session=887987979&csrf_token=87965468796"></script> </head>

从一个页面 View 到另一个页面 View ,通过 hash bang 传递页面所需的任何信息,同时重用缓存中的 scirpt.js。

那么,是否可以从 scirpts.js 中读取哈希爆炸信息?

最佳答案

如果您要创建的 HTML 文件是动态的,则只需创建内联 JavaScript。编写包含只会创建来自浏览器的额外请求,您可以首先避免这种情况。

编辑: 只需包含一个读取 URL 的 JavaScript 文件,您不需要传递任何变量(当然,您也可以):

$(document).ready(function() {
    // pseudo code
    hashbang = location.href.substr(location.href.indexOf('#') + 1);
    if (hashbang.x && hashbang.y) {
        pageInit(hashbang.x, hashbang.y);
    } else if (hashbang.csrf_token) {
        // do something else
    }
});

关于Javascript包含动态SRC技术="url",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21262802/

相关文章:

javascript - 抽象 JavaScript 库的最佳方式?

javascript - 单击时切换按钮背景颜色

performance - 两个连续的内核还是全网格协作组同步?

html - 用于在末尾查找、复制和插入的正则表达式

javascript - 为绘制笔划设置混合模式?

javascript - javascript 中的 httprequest 和二进制数据

javascript - 这有什么问题吗?尝试在原型(prototype)中使用请求回调......但收效甚微

javascript - 模拟 API 调用时未填充 Redux 存储

performance - 计算数组中“小于x”的元素

javascript - setInterval 随着时间的推移变慢