gpt4 book ai didi

javascript - 从服务器脚本 (ASP.NET) 传递 JavaScript 变量名称和值

转载 作者:行者123 更新时间:2023-11-29 22:42:40 24 4
gpt4 key购买 nike

有什么好的方法可以处理这种困惑的、不必要的、非动态的 JavaScript 生成:

var <%# JavascriptId %> = new BusinessChart(
'<%# JavascriptId %>',<%# CurrentUserId %>,'<%# ChartId %>'
,'<%# Helper.GetBaseUrl() %>','<%# ChartPath %>'
,'<%# Helper.ResolveUrl("~", true) %>'
);

<%# JavascriptId %>.Init();

我找到了这个 other question ,但答案似乎并没有解决臭味的来源。

我看到了一些具体问题:

  • JavascriptId 是一个变量名。为什么我应该永远在服务器端定义客户端变量名称?
  • CurrentUserId 永远不会为用户改变...这是他们的用户 ID。 GetBaseUrl() 和 ResolveUrl("~") 也一样...为什么我要到处传递常量?
  • 我必须打开 aspx.cs 代码隐藏文件来调试东西,并且不能使用 Intellisense。

我提出了一些想法来处理上述问题(声明一个全局“应用程序”对象,jQuery + 在 DOM 元素上声明类),但我想听听更多关于这个的想法。

最佳答案

你问的是代码味道,所以我猜代码情况的模糊性是合适的。例如,与 BusinessChart 有什么关系。这里有很多我们不知道的。但这是我闻到的味道:只有你提到的第一个问题对我来说真的很难闻。必须在服务器上指定它非常奇怪。我想这可能是 的原因,但我很难想象。至于变量 CurrentUserID,很容易有充分的理由。例如,BusinessChart 可能会根据用户的 Angular 色过滤不同的数据。

至于 GetBaseUrl 和 ResolvUrl,那也可能是合法的。 BusinessChart 可能需要一个完全限定的 URL,而 GetBaseUrl/ResolveUrl 是提供该 URL 的中心位置,因此您只需在一个地方进行配置更改。为什么不为此使用 web.config 引用? Errrr,可能有多个 Web 应用程序或部署使用这些路径,Helper 类从公共(public)数据库获取这些 URL,为多个应用程序或部署提供一个公共(public)配置位置。

至于使用代码隐藏。 . .有时这是必要的。虽然像这样的动态代码通常是不必要的,但有时那里的复杂性可以实现最大的整体简单性。

如您所见,我尝试对现有代码给予怀疑。但是,正如您所怀疑的那样,我发现您的示例中的所有动态代码确实毫无用处,我不会感到惊讶。我会说你的嗅觉似乎很不错!而且您陈述的第一个问题闻起来最难闻。

关于javascript - 从服务器脚本 (ASP.NET) 传递 JavaScript 变量名称和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1589004/

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