- 博客(1)
- 资源 (4)
- 收藏
- 关注
转载 ESQL(Entity SQL language )语法详解
esql的查询结果集 ObjectQuery ObjectQuery myContext context = new myContext(); string esql = "SELECT VALUE DBItemList FROM myContext.DBItemList"; // ObjectQuery query = new ObjectQuer
2012-09-01 21:33:33 974
inspinia admin 最新版 inspinia 2.7 一套非常优秀的bootstrap后台管理模板
演示地址:英文版 http://www.inspinia.cn
中文版 http://cn.inspinia.cn
内含大量框架支持的完整的源文件
2018-02-22
用 ajax + asp.net 采集文章
用 ajax + asp.net 采集文章
试验型的项目。
原先用多线程来采集,但是觉得多线程采集要显示采集进度很麻烦。
后来改为单线程,边采集边显示进度。又发现出现采集错误的时候不方便作停止。
干脆用ajax 加 asp.net 服务端来采集。
发现有点好处,以后作断点续采方便,可以用cookies 记录当前进度。
我已经把采集规则从数据库里面剥离出来,用xml 将就着用,以后再写入数据库里面保存。
==================
发现低级错误,请自己修改 Ajax.js 文件
// JScript 文件
function AjaxClass()
{
this.XmlHttp = null;
try
{
this.XmlHttp = new XMLHttpRequest();
}
catch (FFError)
{
try
{
this.XmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (NewIEError)
{
try
{
this.XmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (IEError)
{
this.XmlHttp = false;
}
}
}
if (this.XmlHttp == null)
{
alert("浏览器不支持AJAX");
return;
}
this.RequestUrl = "";
this.Method = "get";
this.IsAsyn = true;
this.ContentType = "text/html";
this.Content = null;
this.ProcessDataEvent = processData;
this.StateChangeEvent = handleStateChange;
this.SendRequest = function()
{
this.XmlHttp.onreadystatechange = this.StateChangeEvent;
{
this.XmlHttp.open(this.Method, this.RequestUrl, this.IsAsyn);
if (this.Method.toLowerCase() == "post")
{
this.XmlHttp.setRequestHeader("Content-Type", this.ContentType);
}
this.XmlHttp.send(this.Content);
}
}
function handleStateChange()
{
if (this.XmlHttp.readyState == 4)
{
if (this.XmlHttp.status == 200)
{
this.ProcessDataEvent();
}
}
}
function processData()
{
}
}
2009-12-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人