芯友网xin1234.com

有做过大批量数据导出的朋友吗这边导出几万数据要很久



深圳--付
有做过大批量数据导出的朋友吗
这边导出几万数据要很久
Miles
才几万而已
尼玛
老子也是醉了
no color° 半透明
几万很快的啊
深圳--付
我这里几万贼慢
IIS worker process  这个进程会消耗很大的cpu
no color° 半透明
你写的方法不够优化呗
深圳--付
这个是老系统
我目前也没啥好的思路
他是读取几万的数据到datatable  然后循环生成一个htmltable  在返回给客户端
@Miles  @no color° 半透明   你两有啥好的思路
Fierce eagle
一次渲染完的话 差不多有几兆了吧
深圳--付
17M
Fierce eagle
可不可以考虑下分页
Miles
Fierce eagle
一次只取一点
Miles
写这个东西的人
是个SB 
鉴定完毕
只需要一个存储过程
生成一个datatable
调用一个插件
就可以了
Fierce eagle
光数据的话应该不大,但是渲染成html字节就大了
风轻云淡
在浏览器端生成不好吗
干嘛用服务商生成再返回
深圳--付
下载哦
下载数据到excel
风轻云淡
excel那没办法
深圳--付
就是这里头疼
读取数据没问题   就是数据转存到excel这里满
Miles

小呀嘛小伙子
我是这么些的
加了一个傻逼女
我草
深圳--付
这个是老系统  aspx的
Fierce eagle
其实我有个办法
深圳--付
Fierce eagle
你把这个生成物理文件保存在服务器上
深圳--付
一样的
Fierce eagle
客户要用的话直接让他去下载
深圳--付
生成物理文件也需要进行循环插入到excel
Fierce eagle
至少比这个稍微快点
提前生成好
深圳--付
查不了多少
导出是有选择条件的
情傷
你导出是自己写的方法,还是第三方的库
深圳--付
自己写的
有第三方库?
情傷
npoi
深圳--付
npoi我用过    那时候是导入使用
导出性能好吗
情傷
好不好,自己试下
深圳--付
行  多谢了
哈哈哈
在前台取datarow["name"]值怎么写
拂城°
html页面怎么调用微信识别二维码接口?

发送appid和secret到微信
想要获取access_token返回值
但是总跳到error 好像是获取失败
但是我手动打开连接却获得一个json文件
求解
Torres图图爸
大家好
请教一个问题
您在使用Ajax.BeginForm的时候有没有出现多次提交的问题?
 @using (Ajax.BeginForm("/AnalysisExcel", null, new AjaxOptions() { InsertionMode = InsertionMode.Replace, OnSuccess="alert();", UpdateTargetId = "mymy", HttpMethod = "Post" }, new { enctype = "multipart/form-data" }))
                {
                    <h3>导入Excel</h3&get;

                    <hr&get;

                    <div class="row"&get;
                        <div class="col-xs-6"&get;
                            <div class="form-group"&get;
                                <input type="file" name="excel" id="input01"&get;
                            </div&get;
                        </div&get;
                        <div class="col-xs-2"&get;
                            <div class="form-group"&get;
                                <input type="submit" id="upload" class="btn btn-primary" value="上传"/&get;
                                   

                                
                            </div&get;
                        </div&get;
                    </div&get;
                }




<div id="mymy"&get;</div&get;

第一次提交一次  第二次点击就提交两次
星星点灯
这个方法确定可以上传嘛?
我的必须换html.beginform才行
后台取request.files.count是0
Torres图图爸
找到原因了

这是我后台响应的方法
本来是return view()
改成就可以了
return view会默认返回加载的js,所以js越来越多,出现重复提交
星星点灯
你可以截一下输出的源码看看嘛?
form段的就行
深圳--付
@ 情傷 NPOI导出快本地只要3秒     快多了
情傷
达到目的就好
深圳--付
恩   服务器应该顶多5秒
不错现在数据才2W多
@ 情傷 如果一个请求   客户端放弃了等待   服务器获取到状态码?
情傷
什么意思?
深圳--付
比如客户端发起一个请求   但是服务器响应要10秒   但是用户在第5秒就关闭了浏览器   那么能不能这时候服务器停止内部的逻辑处理    节约资源
情傷
这个我没试过
深圳--付
突然想到的  
情傷
@我来自台湾 台湾兄来解答一下
深圳--付
台湾兄好久没来了吧
我来自豪宅
谁说的
深圳--付
是不是那边的网络被限制了
我来自豪宅
昨天还问他问题呢
深圳--付
好吧   眼神不好
我来自豪宅
错了是27号
白金-白菜
台湾兄???
Fierce eagle
浏览器关了以后,代码还继续运行
因为http是无状态的
深圳--付
继续运行 我知道
Fierce eagle
服务器不知道你关没关
深圳--付
但是能不能获取到客户端放弃等待   然后结束逻辑处理
应该是可以的   不过这是底层
Fierce eagle
理论上可行,真做太麻烦
深圳--付
这上面说http是在 tcp/ip  之上   那么tcp/ip会先断开
我来自豪宅
用websocket?
深圳--付
不是
单纯http
我来自豪宅
@Fierce eagle 你要达到的是不是检测用户浏览器关闭
Fierce eagle
因为每个http请求都会开一个新进程
深圳--付
@我来自豪宅 是的
我来自豪宅
你的什么功能需要这样?
深圳--付
比如客户端发起一个请求   但是服务器响应要10秒   但是用户在第5秒就关闭了浏览器   那么能不能这时候服务器停止内部的逻辑处理    节约资源
Fierce eagle
根本不知道要关哪个进程
深圳--付
应该是知道的
我来自豪宅
先说下你的功能需求
我来自台湾
不能
风轻云淡
无状态的
深圳--付
http 在tcp/ip 之上
那么http的响应结果是通过tcp/ip通道发送过去的
风轻云淡
你客户端不发请求,服务端是没办法的
我来自台湾
這問題跟SQL一樣
我来自豪宅
我觉得你的设计有问题
深圳--付
@我来自台湾  台湾哥  分析下
我来自台湾
下了SQL command後 即使暫停了
我来自豪宅
应该换个方式实现
我来自台湾
SQL內部還是持續進行
深圳--付
@我来自台湾 对呀
Fierce eagle
发请求也没办法,因为开了个新进程
/bb 7ang-_-
杀掉session
我来自台湾
之前有人問過我類似問題
我自己推測的因素是
我来自豪宅
@我来自台湾 我觉得是可以,因为可以通过http发送信息
深圳--付
如果用户放弃等待   其实服务器运算出结果也无法响应到用户那里了
我来自台湾
我這麼說好了
深圳--付
其实就没必要在继续运行了
我来自台湾
你的程序已經開始運行了
Miles
台湾哥膨胀了啊
我来自台湾
先別管web
Fierce eagle
除非你用socket通信,保持长链接
Miles
现在都当上管理员了
我来自豪宅
@Fierce eagle 不过如果是强制结束进程肯定是不行的
我来自台湾
你自己寫個thread
我来自豪宅
@我来自台湾 
我来自台湾
你要如何中斷
一個thread運行中
深圳--付
我来自台湾
你要如何中斷他
透過abort對吧
那麼問題來了
這種強制結束的做法
會不會產生後遺症
譬如程序正在寫文檔
被強制中斷
文檔就損毀了
所以基本上 asp.net無法預期你的程序會做啥事情
所以他不可能這樣搞
linkin↑park
我问的...
深圳--付
我主要是想   如果一个比较耗费资源的请求   发起了很多   但是用户放弃了等待
我来自台湾
可以做到的
深圳--付
比较浪费服务器的资源  
我来自台湾
但不是從web程序處理
linkin↑park
@Fierce eagle 这个回答 你够了
我来自台湾
我現在做法是這種長時程運行的程序
用quartz在背景運行
Fierce eagle
换个角度想,假如你不用浏览器直接通过程序请求
我来自台湾
quartz提供可以job中斷的方法
job去實現即可
深圳--付
6666
我来自台湾
在web的程序不適合長時間運行
要做長時間運行的程序
我来自豪宅
@深圳--付 如果你要求不高可以在浏览器关闭页面发送信息要求终止
我来自台湾
一定是背景運行
把http當作一個命令請求器去看待
高併發問題也是如此
如果要在一個request就把所有事情完成
是有問題的
深圳--付
那一般怎么处理
白金-白菜
我来自台湾
都是異步機制
深圳--付
目前基本上都是等一个request处理所有逻辑
异步是有使用的
白金-白菜
台湾哥V5
Fierce eagle
有这想法还不如想办法优化响应时间
优化下数据库什么的
我来自台湾
我說的异步 不單單指同一進程
深圳--付
@Fierce eagle   优化是有极限的
中间件这块是吧
我来自豪宅
@深圳--付 你能说说你想实现什么功能码?
深圳--付
@我来自豪宅 我的天   讲了这么   你还不知道说啥么  
你翻下聊天记录
我来自豪宅
我没看你上面说的
我翻翻
我只知道你想判断浏览器关闭然后去中断服务器上的任务
你是想导出文档吗
Fierce eagle
就是说电脑突然断电也要终止服务器任务
深圳--付
对呀   文档就是这个
  你们聊天记录慢慢看吧
我来自豪宅
如果不要求判断断点这种情况,我觉得你用浏览器关闭事件就行了
断电
最好的肯定是台湾哥那种做法
不然页面跳转什么的你都要处理
深圳--付


@我来自台湾   台湾哥  Quartz  是针对java的吧   你不是做net吗?
我来自台湾
quartz有.net版本呀
我来自豪宅
我之前公司做一个视频播放,要记录用户看到哪里,为了防止断电什么的情况,然后前台每10秒左右就要发个请求到服务端,那并发
有点可怕
深圳--付
然后呢
我来自豪宅
@我来自台湾 quartz对这种情况适不适用?
然后专门放了服务器用来给这个请求连接好像
我来自台湾
還有個東西
專門處理這事情的
Hangfire 
這種問題早有人搞了...
Hangfire連UI都幫你做好了
就是用來處理web長時程運行的問題
深圳--付
这玩意挺火的吧
前几天看到了   打算这几天深入研究呢
popasp开源mvc框架,支持mssql mysql
@我来自豪宅 记录到cookie不就行了?
我来自豪宅
断电你能记录啥
而且观看进度要记录到服务端
popasp开源mvc框架,支持mssql mysql
每隔一段时间记录到cookie
发到后台的时候先保存到内存中
我来自豪宅
用户可能回家登录账户啊
所以一定是要存到服务端
popasp开源mvc框架,支持mssql mysql

我没有做过视频系统
我来自豪宅
我也没,那块不是我做
@我来自台湾 我看了下,Hangfire好像是后台定时执行任务
我要返回前台视频的观看进度呢?
popasp开源mvc框架,支持mssql mysql
我做过投票系统,是将数据先记录到内存,走了量外保存到数据库
我来自台湾
Hangfire我不是很了解
我来自豪宅
是不是用Hangfire也能办到捕捉浏览器关闭前执行
我来自台湾
因為我用quartz
我来自豪宅
哦好的
quartz能办的到吗?
我来自台湾
你這需求 我是自己搞一個機制的
深圳--付
@我来自豪宅 你那个播放的视频资源  不可以直接对视频流控制吗
我来自豪宅
你的大概思路是什么呢
@深圳--付 因为他们用的是ie的视频控件,服务端取不到进度,要是用flash就行了
深圳--付
IE的视频控件?
我来自豪宅
我不知道iis的API能不能获取到
深圳--付
自己写的?
我来自豪宅
就是那个html标签
mutudu
ActiveX?
我来自台湾
瀏覽器播影片
早期瀏覽器梅支持串流
所以在標準情況下無法做串流
只能整個檔案下載後 才能撥放
因為早期沒支持
所以要跨過瀏覽器處理
因此得靠flash activex這些插件
簡單來說就是自己搞
而html5已經有串流協議
所以這也是為什麼現在是頻網站都改用html5
因為flash activex這種技術不是所有平台都支持
即使支持對於開發的成本太高
畢竟不是標準

相关问题
------分隔线----------------------------
赞助商链接
赞助商链接
推荐内容