将大型字符串数据从 HTML/Javascript 发送到代码隐藏

Send large String data from HTML/Javascript to code behind

本文关键字:代码 隐藏 Javascript 字符串 大型 数据 HTML      更新时间:2023-09-26

我们的应用程序有一些隐藏字段,就像任何其他 asp.net 应用程序一样。在这里,我们使用隐藏字段来存储图像的 HTML,该图像相当大。我们在 C# 代码中使用隐藏字段的值(大 HTML 字符串)进行进一步处理。

我们倾向于创建应用程序的 4 个实例,并且我们对 azure 云服务的负载均衡有疑问。我们通过 javascript 在应用程序流程的中途为这些隐藏字段赋值。由于此处理是在客户端完成的,因此此处没有问题。但是由于 azure 有多个实例,所以如果要在服务器端(即在我们的 C# 中)访问这些隐藏字段,直接访问这些隐藏字段会产生任何问题,因为如果实例发生变化,负载均衡?

注意:我们的页面在访问这些隐藏字段时不会回发 在服务器端。

我们不清楚实例何时更改,如果我们的页面没有回发,那么请求会去同一个实例吗?这是有保证的吗?此外,如果页面执行回发,则响应会转到调用请求实例的同一实例。

我们需要建议或访问服务器端这些隐藏字段的正确方法。这些隐藏的领域对我们来说非常重要;使用 Azure 的缓存/会话设置对我们来说将变得非常昂贵,因为数据非常大。如果建议是免费实施,那将非常有帮助。由于我们已经在预算紧张的情况下运行。

/

/2013年10月25日

我们有一大串数据,主要由从 Bing 地图获得的 HTML 组成,我们使用 Bing Mapdiv 元素的 Jquery 选择器获取了 Bing 地图的 HTML,我们希望将这个 HTML 字符串发送到后面的代码。我们的 javascript 上有这个字符串,但是当我们对它背后的代码进行 ajax 调用时会失败。

我们甚至尝试通过 POST 方法将其发送到正文中,但这再次失败。

 var string = formData; // so long text
        var xhr = new XMLHttpRequest();
        var body = "string=" + encodeURIComponent(string);
        xhr.open("POST", "index.aspx/getString", true);
        xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        xhr.setRequestHeader("Content-Length", body.length);
        xhr.setRequestHeader("Connection", "close");
        xhr.send(body);

正如 Rick 所建议的,我们已经尝试过 blob,但问题在于将字符串从 javascript 发送到代码隐藏。我们真的被困在这里死胡同。

您指出缓存对您来说代价高昂。 虽然使用缓存服务确实会产生一些成本,但您是否考虑过将角色内缓存作为替代方法? 也许您在现有实例上有足够的额外资源来支持您的需求。 如果您选择走这条路线,我在上面提供的链接中有一个指向一些容量规划的链接。

--- 2013/10/24 ---

如果我正确理解了你的最新说明,则你正在客户端上生成一些 HTML,要上传到 Azure 上的 Web 应用。 在 Web 应用程序中,您正在使用该 HTML 生成一个 PDF,我认为客户端稍后会收到该 PDF。 如果这是你的方案,那么你可以上传 HTML 并将其存储为 blob? 这样,Web 应用的任何实例都可以从 Blob 存储中引用它,而不是将其填充到隐藏字段中。

在 Web 应用中,可以使用 HttpPostedFile 从客户端接收文件并将其保存到 Blob。 注意:您可能需要调整帖子允许的最大大小,因为它默认为 4MB,并且您指示您的数据可能最大为 5MB。

我试图帮助你,但你的问题不是那么清楚。 考虑到讨论的背景,即使是标题也具有误导性。 如果这没有帮助,那么您可能需要编辑您的问题。