HTML5技术

各大招聘网站信息实时查询浏览【二】 - 敷衍不起

字号+ 作者:H5之家 来源:H5之家 2015-11-04 13:52 我要评论( )

前言 前面写了《各大招聘网站信息实时查询浏览》,关注的朋友还真不少。各种意见的提,我也觉得意见挺好的,也就一一采纳了。 有朋友说,希望能在手机端访问。好,采纳。有朋友说,选择区域太少了。好,我加上。有朋友说,希望能在本页面查看详情。ok,我同意

前言

前面写了《各大招聘网站信息实时查询浏览》,关注的朋友还真不少。各种意见的提,我也觉得意见挺好的,也就一一采纳了。

有朋友说,希望能在手机端访问。好,采纳。有朋友说,选择区域太少了。好,我加上。有朋友说,希望能在本页面查看详情。ok,我同意。

额,差不多就这些改动了。

效果图

不想往下看的可以直接:演示地址(老地址)  源码下载 

pc:效果图     移动端:效果图

使用webapi提供数据

为什么要用webapi提供数据?

  • 数据部分和显示部分分离
  • 可以各终端调用数据展示
  • 因为我这里请求的时候,是实时访问的招聘网站,所以请求过程要耗费一定的时间。但是,信息的更新并不频繁。我们可以在webapi中使用缓存。

    在guget命令行执行 Install-Package Strathweb.CacheOutput.WebApi2OutputCache 。

    示例代码:

    [CacheOutput(ClientTimeSpan = 60, ServerTimeSpan = 60)] public IEnumerable<string> Get() { [] { , }; }

    WebAPI 测试链接:

    响应式

    什么是响应式? 请戳。

    在做响应式布局的时候,还是遇到了点小问题的。

    如:

    pc端的搜索条件所在的div 显示效果:

    在移动端的显示效果:

    要求:pc端一行显示,移动端两行显示。且左右居中显示。

    问题就出在左右居中。首先,pc端的显示。两个div一行显示,我们一般都是用样式 float: left; 。可是,我发现float了以后不好居中了啊。考虑这用个东西包起来,再居中。具有包裹性的:无非就是: float: left;  display:table;  position:absolute 。float排除,然后table的显示方式好使。就像我们平时让table居中那样。 margin:0 auto; 

    测试代码:

    <style type="text/css"> .clearfix { overflow: auto; _height: 1%; } </style> <div> <div>div1</div> <div>div2</div> </div>

     

    注意:clearfix 用来防止使用了 float 而引起的”坍塌“效果。

    pc端搞定了,那移动端直接去掉 float  再显示就ok了。

    (前端的东西,我也是知其然不知其所以然。什么居中、”坍塌“、clearfix等 也不知道为什么要这么用。所以博文记录下,方便下次自己翻阅。)

    详细信息显示

    虽然列表中超链接到详情页面。但是,如果我们可以直接在本页面查看到详情岂不是更加的方便。我们做的本来就是为了更加方便的浏览招聘信息。

    说做就做。首先,我们的列表已经有了超链接。我们在点击行的时候,发送请求到后台。取得详细信息,然后在页面显示。就这么简单。

    后台获取详细信息:

    #region 根据url请求,返回详细信息 根据url请求,返回详细信息 GetUrlInfo(string url, DataType type) { var ulS = string.Empty; switch (type) { case DataType.智联招聘: #region 问题:“gzip”不是受支持的编码名 的处理方法 http:// HtmlAgilityPack.HtmlWeb.PreRequestHandler handler = delegate(HttpWebRequest request) { request.Headers[HttpRequestHeader.AcceptEncoding] = ; request.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip; request.CookieContainer = new System.Net.CookieContainer(); return true; }; htmlWeb.PreRequest += handler; #endregion htmlWeb.OverrideEncoding = Encoding.GetEncoding(); HtmlAgilityPack.HtmlDocument response = htmlWeb.Load(url); ); ); ); if (fuli != null && fuli.Count >= 1 && !string.IsNullOrEmpty(fuli[0].InnerText.Trim())) ulS += + fuli[0].InnerText; if (jiben != null && jiben.Count >= 1 && !string.IsNullOrEmpty(jiben[0].InnerText.Trim())) ulS += + jiben[0].InnerText; if (miaoshu != null && miaoshu.Count >= 1 && !string.IsNullOrEmpty(miaoshu[0].InnerText.Trim())) ulS += + miaoshu[0].InnerText; break; case DataType.猎聘网: htmlWeb.OverrideEncoding = Encoding.GetEncoding(); response = htmlWeb.Load(url); jbinfo = response.DocumentNode.SelectNodes() ?? response.DocumentNode.SelectNodes(); selectNodes = response.DocumentNode.SelectNodes() ?? response.DocumentNode.SelectNodes(); ganwei = response.DocumentNode.SelectNodes() ?? response.DocumentNode.SelectNodes(); ulS = + jbinfo[0].InnerText + + selectNodes[0].InnerText + + ganwei[0].InnerText; break; case DataType.前程无忧: htmlWeb.OverrideEncoding = Encoding.GetEncoding(); response = htmlWeb.Load(url); //-- ulS = + response.DocumentNode.SelectNodes()[0].InnerText + + response.DocumentNode.SelectNodes()[0].InnerText; break; case DataType.拉勾网: htmlWeb.OverrideEncoding = Encoding.GetEncoding(); response = htmlWeb.Load(url); ulS = + response.DocumentNode.SelectNodes()[0].InnerText + + response.DocumentNode.SelectNodes()[0].InnerText; break; } return ulS.ToJson(); } #endregion

    View Code

     

    前台信息加载:

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • 调取百度地图接口,实现取自己的实时位置,然后可以在百度地图上添加信息标注 - QISHUANG

      调取百度地图接口,实现取自己的实时位置,然后可以在百度地图上添加

      2017-04-18 10:02

    • 使用phonegap获取设备的一些信息 - ganchuanpu

      使用phonegap获取设备的一些信息 - ganchuanpu

      2017-03-30 13:00

    • 管理软件公司与互联网公司的区别 - 信息化建设

      管理软件公司与互联网公司的区别 - 信息化建设

      2017-01-01 13:03

    • 信息采集系统中,一场关于异构平台通信的风波 - 熬夜与烟

      信息采集系统中,一场关于异构平台通信的风波 - 熬夜与烟

      2016-07-15 11:00

    网友点评
    t