gpt4 book ai didi

asp.net - 浪费 Ajax 页面加载

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

我开始了一份新工作,我正在工作的项目部分的结构非常奇怪。每个页面都是一个 .Net aspx 页面,并且加载得很好,但在加载时并没有真正执行任何操作。一切实际上都是从 jquery document.onready 处理程序加载的。

更……有趣的是……onready 处理程序调用一些 ajax 调用,将整个 .aspx 页面放入页面上的 div 中,但首先它会删除返回页面的几个部分。这是前一位程序员在 ajax 调用返回的所有 html 上运行的“神奇”脚本:

function CleanupResponseText(responseText, uniqueName) {
responseText = responseText.replace("theForm.submit();", "SubmitSubForm(theForm, $(theForm).parent());");
responseText = responseText.replace(new RegExp("theForm", "g"), uniqueName);
responseText = responseText.replace(new RegExp("doPostBack", "g"), "doPostBack" + uniqueName);
return responseText;
}

然后他拦截任何类型的表单回发并运行他自己的表单提交函数:

function SubmitSubForm(form, container) {
//ShowLoading(container);
$(form).ajaxSubmit( {
url: $(form).attr("action"),
success: function(responseText) {
$(container).html(CleanupResponseText(responseText, form.id));
$("form", container).css("margin-top", "0").css("padding-top", "0");
//HideLoading(container);
}
}
);
}

我认为这不是最佳的,是不是太离谱了?我的意思是,浏览器如何取出 html 和 head 以及其他与您真正想要放入该 div 的内容无关的标签?​​

此外,他还返回诸如 asp:gridview 控件和关联 View 状态之类的内容,如果他的数据集很大,这些 View 状态可能会非常大。

有人见过这个吗?

最佳答案

早在 2006 年,当我第一次学习 Ajax 时,我就用它在页面加载后检索页面的主要内容。 (或者更确切地说,在 html 的底部)。但我很快就放弃了它。

感觉不太对劲。

  • 如果该页面可以通过互联网访问,那么这对于营销/搜索引擎优化来说非常糟糕。因为搜索引擎看到的是一个空白页面。我认为大多数爬虫都懒得运行 javascript。
  • 就性能而言,它没有多大帮助。随着时间的推移,我们了解到 Ajax 最适合用来更新一小段 html。如果通过 ajax 返回的内容大于“加载大小”,那么您并没有真正获得任何好处。通过缓存,加载时间非常短。
  • 兼容性。尽管所有主流浏览器都很好地支持ajax,但仅仅因为它不会破坏就让页面完全依赖于js是不值得的。另外,Ajax 请求将不必要地使用更多的 CPU,从而在移动设备上使用更多的电池。
  • 历史记录的实现可能更困难。如果您在历史记录中来回查看,很可能该页面将是空的,或者必须调用服务器再次检索内容。

尽管它可以工作,但仍然感觉它更像是一个黑客而不是可靠的代码。

关于asp.net - 浪费 Ajax 页面加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2837761/

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