Javascript 解决IE6、IE7中查询时间过长的问题?

Javascript 解决IE6、IE7中查询时间过长的问题?,javascript,html,forms,browser,internet-explorer-6,Javascript,Html,Forms,Browser,Internet Explorer 6,我有一个在FF,Opera,Safari,Chrome和IE8中提交罚款的表格。。。 但它不会在IE6或IE7中提交 我已经注意到,99%的人肯定问题在于查询字符串太长。 我有很多选择 现在,将方法更改为POST是不可能的,所以请不要费心问这个问题 我想知道,这个问题还有其他解决办法吗? 还有,为什么只有IE6和IE7有这个问题 如果没有解决方法,“禁用”超过限制的“过多”输入是否有助于缩短查询字符串?换句话说,禁用的表单元素是否也会添加到查询字符串中 谢谢如果您确定这是问题所在,而不是其他数百

我有一个在FF,Opera,Safari,Chrome和IE8中提交罚款的表格。。。 但它不会在IE6或IE7中提交

我已经注意到,99%的人肯定问题在于查询字符串太长。 我有很多选择

现在,将方法更改为POST是不可能的,所以请不要费心问这个问题

我想知道,这个问题还有其他解决办法吗? 还有,为什么只有IE6和IE7有这个问题

如果没有解决方法,“禁用”超过限制的“过多”输入是否有助于缩短查询字符串?换句话说,禁用的表单元素是否也会添加到查询字符串中


谢谢

如果您确定这是问题所在,而不是其他数百万跨浏览器问题,您可以尝试使用ajax调用。将查询拆分为2、3、n个调用


这只是一张表格吗?我可以问一下为什么不可能发邮件吗

这不太好,但你可以将值放入cookie中

要回答第二个问题,Microsoft在这里得到了答案: 最大URL为2083个字符,因此GET请求生成的页面的URL必须比该URL短

回答你的第三个问题,, : “禁用的控件无法成功”,即它们不会提交


要回答您的第一个问题,也许您可以在某些字段上设置字符限制,例如textarea。另一种选择可能是使用javascript压缩输入,以某种方式对其进行散列,然后在提交的页面上在服务器端取消对其进行散列。

要回答最后一个问题,首先将禁用的表单输入获取或发布回服务器


如果不允许过帐,您可以尝试消除非必要的表单输入,尽管这很简单,但减少元素名称的长度也会缩短查询字符串。

您还可以尝试在JavaScript中对查询字符串值进行客户端压缩

我已经成功地使用Base93加密来显著减少字符串大小

您也可以尝试huffman压缩,尽管它的处理器更重


如果您只需要有限的字符集(小写a-z),您可以想出一些其他技巧。

查询字符串过长错误可以通过简单的IIS设置更改来避免

为什么发帖是不可能的?你的问题有多长?为什么使用
POST
是不可能的?因为你提到的错误?也许我们应该看看这些
GET
从未设计用于发送大量数据;GET请求应该是。没有完全理解关于禁用输入的部分。。。因此,通过禁用它们,我可以缩短查询字符串吗?通过“它们不会提交”和“不能成功”,是的,它们不会成为查询字符串的一部分。是的,但是“它可以成功”解决了我的问题,这是令人困惑的部分。。。所以,我将制作一个js代码,用于在输入表单时禁用所有其他输入,但需要的除外。。。thanks@Camran:但这能解决实际问题吗?我想你毕竟需要这些数据。如果它没有被发送,你就不能用它做任何事情,输入字段也将毫无用处。@Marcel:没错,这就是为什么我要禁用所有无用的输入。只需澄清一点,输入是“选择选项”,这是很多。根据类别,js显示包含选项的div。但是,所有其他div都是不可见的,但它们各自类别的选项不可见。通过禁用它们,我将显著缩短查询字符串。这在除IE之外的任何浏览器中都不是问题,所以我从未想过。感谢您在所有情况下都必须依赖Javascript来实现这一点;虽然有很好的解决方法,但它们只是一个丑陋的问题,无论如何都不应该存在。诚然,最好使用post,或者如果你有一个很长的表单,可以将它拆分成若干子表单。不过,我也遇到过一些使用JS压缩非常有用的情况。特别是在通过JSONP跨域API发送数据时。如果要发送的字符数已知,则选择适当的编码基数可以显著缩短要发送的字符串,并且JS开销相当低。与标准表单提交相比,更适合JS密集型web应用程序。Cookie也有每个浏览器的长度限制,这在不同的伪装下只是相同的问题。