gpt4 book ai didi

JavaScript - jQuery - 我的 dataSource() 函数安全吗? - 如何测试

转载 作者:行者123 更新时间:2023-12-02 17:10:25 26 4
gpt4 key购买 nike

我是 StackOverflow 的新手,不确定是否应该在这里问这个问题,所以如果我在错误的地方问这个问题,请告诉我。

我想在 JavaScript 中实现 dataSource(如 ASP.NET)。所以我创建了一个具有以下功能的 jQuery 插件:

$.getUniqueString = function (prefix) {
if (!prefix) prefix = "s";
for (var loopIndex = 0; true; loopIndex++) {
if (typeof window[prefix + loopIndex] != "undefined") { // if sourceId exists
continue;
}
prefix = prefix + loopIndex;
break;
}
return prefix;
}

$.fn.dataSource = function (source) {

var sourceId;
if (!source) {
sourceId = $(this).attr("data-source-id");
return window[sourceId];
}

sourceId = $.getUniqueString();
$(this).attr("data-source-id", sourceId);
window[sourceId] = source;
}

这个插件工作正常。到目前为止,我还没有遇到任何困难。这是工作示例的链接( fiddle ):http://jsfiddle.net/Gu2KQ/

但是,我的问题是:

  • 我的代码足够安全,客户端浏览器不会崩溃吗?
  • 有什么建议可以进一步优化此代码吗?
  • 还有其他选项可以更好地实现相同的功能吗?

如有任何帮助,我们将不胜感激。

最佳答案

这里不需要评估。您可以获取和设置全局变量作为 window 对象的属性。

$.getUniqueString = function (prefix) {
if (!prefix) prefix = "s";
for (var loopIndex = 0; true; loopIndex++) {
if (typeof window[prefix + loopIndex] != "undefined") { // if sourceId exists
continue;
}
prefix = prefix + loopIndex;
break;
}
return prefix;
}

$.fn.dataSource = function (source) {

var sourceId;
if (!source) {
sourceId = $(this).attr("data-source-id");
return window[sourceId];
}

sourceId = $.getUniqueString();
$(this).attr("data-source-id", sourceId);
window[sourceId] = source;
}

关于JavaScript - jQuery - 我的 dataSource() 函数安全吗? - 如何测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24869126/

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