1. web项目,地址栏适合传大数据量的数据吗

html">看下面的话,就明白了

get和post的区别
2.1安全性
如果用get提交一个验证用户名和密码的form,"一般"认为是不安全的。因为用户名和密码将出现在URL上

,进而出现在浏览器的历史记录中。
显然,在对安全性有要求的情况下,应该使用post。

2.2编码
HTML4.01specification(规范)指出,get只能向服务器发送ASCII字符;
而post则可以发送整个ISO10646中的字符;
(如果指定enctype="multipart/form-data"的话)。

注意get和post对应的enctype属性有区别。enctype有两个值,默认值为application/x-www-form-

urlencoded,
而另一个值multipart/form-data只能用于post。

2.3提交的数据的长度
HTTPspecification并没有对URL长度进行限制,但是IE将请求的URL长度限制为2083个字符,从而限制了

get提交的数据长度。
测试表明如果URL超出这个限制,提交form时IE不会有任何响应。
其它浏览器则没有URL的长度限制,因此其它浏览器能通过get提交的数据长度仅受限于服务器的设置。

IE的url最大长度是2083个字符,可以用于GET传递数据的长度是2048个字符,这个数字不小,远超过256这个

曾经认为无比正确的数字.
另外POST方式传递的数据不受这个长度影响,它的值通过浏览器header传输而不是url.

而对于post,因为提交的数据不在url中,所以通常可以简单地认为数据长度限制仅受限于服务器的设置。

2.4缓存
由于一个get得到的结果直接对应到一个URL,所以get的结果页面有可能被浏览器缓存。而post一般则不能

,参考5。

2.5引用和SEO
出于和上面相同的原因,我们可以用一个URL引用一个get的结果页面,而post的结果则不能,所以必然不

能被搜索引擎搜到。

2. 前端怎么优化大数据页面

来源:前端的性能优化都有哪些东西?作者:野次前端性能优化是个巨大的课题,如果要面面俱到的

3. 如何处理java web项目中大数据量处理问题

既然是异步处理,那就是不和客户的请求同时进行,所以也和session无关了。异步处理也和EJB没关系。
1。当客户请求数据操作的时候,你的javabean把请求存放到文件里面,然后就可以返回response给客户了。
2。自己做一个application program,是thread,隔一段时间监听那个文件(或者一个目录),如果发现有新的文件,就读取出来,根据要求进行长时间操作。操作完毕,更新一个flag A(可在数据库,可在文件),并且把操作的文件remove(以免重复对此文件操作)。
3。客户总会不定时刷新页面或者发新页面请求,这时候就察看flag A,如果完成,就在页面上提示用户,就如msdn的“你有短消息“

4. 多个html页面里的大数据如何传值给一个html页面

你可以考虑一下用 Javascript 在其他几个 frame 入面得到各样的 .value. 这样一来, 可以将已出现到客户端的处理留给客户端处理. 这方法会由 d frame 做主导.

但你亦可以同样以此方法, 在 d 先写好几个收集数据的 function, 这样, 由 abc frame 通过 parent.D.somefunc() 让 d 得到数据. 不过这也限制於平面数据,

而如果你将此加以延续, 可以用 JSON, 那麼你就可以传递 Object 了. 唔.. 具体我也帮不上忙, 但概念会是这麼构思, 希望帮到一点忙啦! 至少, 这些都不会有长度限制的. Good luck ! =)

5. ACCess最大数据量是多少

Microsoft Access 数据复库常规制规格
属性 最大值
Microsoft Access 数据库 (.mdb) 文件大小 2 G 字节。不过,由于数据库可以包括其他文件中的链接表,所以它的大小仅实际上只受可用存储空间大小的限制。
数据库中的对象个数 32,768
模块(包括 HasMole 属性为 True 的窗体和报表) 1,000
对象名称的字符数 64
密码的字符个数 14
用户名或组名的字符个数 20
用户个数 255

6. js大数据量如何实现页面的局部渲染(不是局部刷新)--解决方法

把看到的区域当画布,创建足够能展现界面的Dom就够了。
比如一个屏幕的高度一般是800像素左右,假设一条记录占用的高度是20像素,我们只用创建40个对象即可。
接下来就是对这40个对象进行数据填充,通过滚动条调整填充数据的起始下标。
10W条记录,IE下有些卡
<style type="text/css">
.panel{
overflow:scroll;
width:200px;
height:80%;
}
.panel .scroll{
}
.item{
width:500px;
height:20px;
}
.odd{
background-color:#ccc;
}
.items{
overflow:hidden;
position:absolute;
}
.red{
color:red;
}
.green{
color:green;
}
</style>
<script>
window.console = window.console || { log: function() {} };

function absolutePoint(element) {
var result = [element.offsetLeft, element.offsetTop];
element = element.offsetParent;
while (element) {
result[0] += element.offsetLeft;
result[1] += element.offsetTop;
element = element.offsetParent;
}
return result;
}
function ListView(options){
options = options || {};

var self = this,
$C = function(tagName) { return document.createElement(tagName); }, // 创建节点
p,
height,
item_height, // 项高
view_count, // 可见项条数
parent = options.parent || document.body, // 容器
height, // 面板历史高度
div_panel = $C("div"),
div_scroll = $C("div"),
div_items = $C("div"),
div_items_list = [$C("div")],
freed = [div_panel, div_scroll, div_items]; // 可释放的对象

div_panel.className = "panel";
parent.appendChild(div_panel);

div_items.className = "items";
document.body.appendChild(div_items);

div_scroll.className = "scroll";
div_panel.appendChild(div_scroll);

div_panel.onscroll = function() {
doChange();
}
div_panel.onresize = function() {
doChange();
}

div_items_list[0].className = "item";
div_items.appendChild(div_items_list[0]);

div_scroll.style.width = div_items_list[0].clientWidth + "px";
item_height = div_items_list[0].clientHeight;

p = absolutePoint(div_panel);
with(div_items.style) {
left = p[0] + "px";
top = p[1] + "px";
width = div_panel.clientWidth;
height = div_panel.clientHeight;
}
/**
* 界面改变
*/
function doChange() {
if (!item_height) return;
var i, div;
if (height != div_panel.clientHeight) {
height = div_panel.clientHeight;
view_count = parseInt(height / item_height);
for (i = div_items_list.length; i < view_count; i++) {
div = $C("div");
div.className = "item" + (i % 2 == 0 ? "" : " odd");
div_items.appendChild(div);
div_items_list.push(div);
}
for (i = 0; i < div_items_list.length; i++) {
div_items_list[i].style.display = i < view_count ? "" : "none";
}
div_scroll.style.height = div_panel.clientHeight + options.count - view_count + "px";
console.log(["view_count", view_count]);
}
div_items.scrollLeft = div_panel.scrollLeft;
if (!options.ondrawitem) return;
i = Math.min(view_count, div_items_list.length);
while(i--) {
// 重新绘制
options.ondrawitem(i + div_panel.scrollTop, div_items_list[i]);
}
}

doChange();
this.doChange = doChange;
/**
* 释放Dom对象
*/
this.dispose = function() {
var i = freed.length;
while(i--) {
freed[i].parentNode.removeChild(freed[i]);
}
i = freed.length;
while(i--) {
div_items_list[i].parentNode.removeChild(div_items_list[i]);
}
}
}
function format(template, json) {
if (!json) return template;
return template && template.replace(/\$\{(.+?)\}/g, function() {
return json[arguments[1]];
})
}
window.onload = function() {
var i = 100000, data = new Array(i);
while(i--) {
data[i] = { index: i, random: Math.random(), key: (+new Date()).toString(36) };
}
var listview = new ListView({
count: data.length,
ondrawitem: function(i, div) {
div.innerHTML = format(" <em>${index} </em> <span class=\"red\">${random} </span> <span class=\"green\">${key} </span>", data[i]);
}
});
};
</script>

7. 如何提升大数据量页面的加载速度

可以这样

写一个服务,就是按行数读数据

先写一个页面

上面写4.5个timer,然用分别用这几个回timer去请求这个答服务,读数据.间接的实现了多线程....

清求写成事件驱动的.一个timer执行完了。马上开始请求下面的行数

8. viewstate,session谁存储的数据量最大各自是是一个什么范围

viewstate存在页面上,随页面传输,不够安全,同时转到别的页面就消失了。
session存在服务器端,安全,可存一些复杂的数据,但是占用服务器内存或数据库资源,和页面跳转没有关系,一个用户一个session。
应用场合是不同的,ViewState只限制在当前页面内;Session用于页面间传递。

另外Application Session Cookie ViewState Cache Hidden
Session
1. Session用来保存每一个用户的专有信息
2. Session的生存期是用户持续请求时间加上一段时间(一般是20分钟左右)
3. Session信息是保存在Web服务器内存中的,保存数据量可大可小
4. Session超时或者被关闭将自动释放数据信息
5. 由于用户停止使用应用程序之后它仍在内存中存留一段时间,因此这种方法效率较低
6. 代码:Session[“UserID”]=“test”;
String UserName=Session[“UserID”].ToString();
ViewState
1. ViewState用来保存用户的状态信息,有效期等于页面的生命周期
2. 可以保存大量数据但是要慎用,因为会影响程序性能
3. 所有的Web服务器控件都是用ViewState在页面PostBack期间保存状态
4. 不需要则关闭 @page 里面设置EnableViewState=false
5. 代码:ViewState[“ID”]=“yiner”;
String ID =ViewState[“ID”].ToString();
Application
1. Application用来保存所有用户共用的信息
2. 在Asp时代,如果要保存的数据在应用程序生存期内不会或者很少发生改变,那么使用Application是理想的选择。但是在Asp.net开发环境中我们把类似的配置数据放在Web.config中。
3. 如果要使用Application 要注意的是所有的写操作都要在Application_OnStart事件中完成(global.Asax),尽管可以使用Application.Lock()避免了冲突,但是它串行化了对Application的请求,会产生严重的性能瓶颈。
4. 不要使用Application保存大数据量信息
5. 代码:Application[“UserID”]=”test”;
String UserName=Application[“UserID”].ToString();
Cookie
1. Cookie用来保存客户浏览器请求服务器页面的请求信息
2. 我们可以存放非敏感的用户信息,保存时间可以根据需要设置
3. 如果没有设置Cookie失效日期,它的生命周期保存到关闭浏览器为止
4. Cookie对象的Expires属性设置为MinValue表示永不过期
5. Cookie存储的数据量受限制,大多数的浏览器为4K因此不要存放大数据
6. 由于并非所有的浏览器都支持Cookie,数据将以明文的形式保存在客户端
7. 代码:Response.Cookies[“UserID”]=”test”;
String UserName= Resopnse.Cookies [“UserID”].ToString();

Cache
1. Cache用于在Http请求期间保存页面或者数据
2. Cache的使用可以大大的提高整个应用程序的效率
3. 它允许将频繁访问的服务器资源存储在内存中,当用户发出相同的请求后
服务器不是再次处理而是将Cache中保存的数据直接返回给用户
4. 可以看出Cache节省的是时间—服务器处理时间
5. Cache实例是每一个应用程序专有的,其生命周期==该应用程序周期
应用程序重启将重新创建其实例
6. 注意:如果要使用缓存的清理、到期管理、依赖项等功能必须使用Insert 或者Add方法方法添加信息
7. 代码:Cache[“ID”]=“yiner”;或者Cache.Insert(“ID”,”test”);
String ID =Cache[“ID”].ToString();
Hidden
1. Hidden控件属于Html类型的服务器控件,始终处于隐藏状态
2. 每一次提交的时候它会和其他服务器控件一起提交到服务器端
3. 代码如下:Hidden.Value=”king”;
string id=Hidden.Value; 要使用Runat=server

9. 如何在页面之间传递数据量较大的复杂数据

1.通常我们会用url传值来传递数据量较小的一些数据,如一些参数等,会利用session传递一些全局的会话级的变量。但要窗体之间传递一些较复杂的数据,用session生命周期太长,可能不合适。用URL传值,汉字可能出现编码错误,而且可以传递的最大数据量比较有限。
2.我们可以利用模态对话框的dialogArguments属性来实现跨页面的数据传递,
通过如下方式可获得模态对话框的dialogArguments属性:
var Variables = window.dialogArguments
利用该属性可获得模态对话框的传入参数,可以是String, numeric, object, or array value that specifies arguments.尤其是对象或数组型的参数,对于在页面之间传递数据非常有用。举例如下:
传入页面:
function AddNew(meetingID) {
var bj=new Object();
obj.name="qiubinchao";
obj.tel="12345678"; var strUrl="../MeetingManage/NewMeeting.aspx?id="+meetingID; window.showModalDialog(strUrl,obj,"dialogHeight:700px;dialogWidth=900px;dialogTop=10px;dialogLeft:50px;"); window.location="../MeetingManage/MeetingPublishedList.aspx"; }
接收页面:
var MyObject = window.dialogArguments;
var name= oMyObject.name;
var tel= oMyObject.tel;
Name:
document.write(name);
Tel:
document.write(tel);