【发布时间】:2018-10-30 14:18:45
【问题描述】:
我正在开发一个 MVC 项目。我必须通过 Ajax 调用使用数据动态添加元素。我必须在 JavaScript 中使用服务器端变量(字典)。所以在 Ajax 成功回调中,我使用这样的服务器端变量,
translatedDictionary = @Html.Raw(Json.Encode(TranslationDictionary));
TranslationDictionary 是我的服务器端字典类型变量,translationDictionary 是我的 JavaScript 变量。我的问题是这样做是否会在页面首次呈现时增加页面大小,我的意思是使用“Html.Raw”会对页面加载时间产生任何影响。
【问题讨论】:
-
它将值作为 html 直接插入到页面中,因此它会通过它必须加载的额外字符数增加加载时间 - 如果你在 ajax 成功回调中使用它 - 当然你应该只是正在使用 js,不需要 html raw
-
但是我在 Ajax 成功回调中插入了值,它仍然会影响 Ajax 调用之前的页面大小吗?
-
Html.Raw 在页面呈现时被调用,因此无论你在做什么都会在页面呈现时输出 - 如果你试图使用成功回调中的 var,那么你需要使用 js并使用您的 ajax 响应 - 最好显示您的整个 ajax 请求,以便我们可以在上下文中查看代码
-
我没有从 Ajax 响应中得到它。它只是我在呈现页面时获得的服务器端变量。在 Ajax 成功时,我需要此服务器端变量的一些值,这就是我在 Ajax 成功回调中使用它的原因。
-
然后你在页面加载时渲染输出(它在你的成功调用中并不重要 - 它仍然在页面加载时呈现)所以我建议你回到我的初步评论
标签: javascript c# asp.net-mvc html