一些常用的数据例如一些网站的区域信息被改变的可能性不大,一般不通过请求获取,于是我们选择存在静态文件中,例如以下Demo:

1.动态加载Json数据显示到前台

  1. [HttpPost]
  2. public ActionResult GetData()
  3. {
  4. List<Area> areaList = new List<Area>()
  5. {
  6. new Area()
  7. {
  8. AreaID=,
  9. AreaName="福建省",
  10. Depth=,
  11. cityList=new List<Area>()
  12. {
  13. new Area(){ AreaID=, AreaName="福州市", Depth=},
  14. new Area(){ AreaID=, AreaName="厦门市", Depth=}
  15. }
  16. },
  17. new Area()
  18. {
  19. AreaID=,
  20. AreaName="四川省",
  21. Depth=,
  22. cityList=new List<Area>()
  23. {
  24. new Area(){ AreaID=, AreaName="成都市", Depth=}
  25. }
  26. }
  27. };
  28. return this.Write(Request["callback"], "", new { success = true, returnData = areaList });
  29. }
  1. /// <summary>
  2. /// 转换输出
  3. /// </summary>
  4. /// <param name="callBack"></param>
  5. /// <param name="paramName"></param>
  6. /// <param name="obj"></param>
  7. /// <returns></returns>
  8. public ContentResult Write(string callBack, string paramName, object o)
  9. {
  10. Newtonsoft.Json.JsonSerializerSettings jSetting = new Newtonsoft.Json.JsonSerializerSettings();
  11. jSetting.NullValueHandling = NullValueHandling.Ignore;
  12. jSetting.DateFormatString = "yyyy-MM-dd HH:mm:ss";
  13. if (callBack == "" && paramName == "")
  14. return Content(JsonConvert.SerializeObject(o, jSetting), "application/json");
  15. else if (callBack != "")
  16. return Content(callBack + "(" + JsonConvert.SerializeObject(o, jSetting) + ");", "application/x-javascript");
  17. else
  18. return Content("var " + paramName + " = " + JsonConvert.SerializeObject(o, jSetting) + ";", "application/x-javascript");
  19. }
  1. <div id="main">
  2. <ul id="ulmain">
  3.  
  4. </ul>
  5. </div>
  1. $.ajax({
  2. url: '/Home/GetData',
  3. dataType: 'jsonp',
  4. type: 'post',
  5. success: function (r) {
  6. var html = '';
  7. for (var i = 0; i < r.returnData.length; i++) {
  8. var item = r.returnData[i];
  9. html += '<li>' + item.AreaName + '</li>'
  10. var hc = '';
  11. if (item.cityList.length > 0) {
  12. hc += '<ul>';
  13. for (var j = 0; j < item.cityList.length; j++) {
  14. var city = item.cityList[j];
  15. hc += '<li>' + city.AreaName + '</li>'
  16. }
  17. hc += '</ul>';
  18. }
  19. html += hc;
  20. }
  21.  
  22. $("#ulmain").html(html);
  23. }
  24. });

结果如下:

2.生成静态文件

  1. /// <summary>
  2. /// 生成静态JS文件
  3. /// </summary>
  4. /// <returns></returns>
  5. public ActionResult CreateFile()
  6. {
  7.  
  8. List<Area> areaList = new List<Area>()
  9. {
  10. new Area()
  11. {
  12. AreaID=,
  13. AreaName="福建省",
  14. Depth=,
  15. cityList=new List<Area>()
  16. {
  17. new Area(){ AreaID=, AreaName="福州市", Depth=},
  18. new Area(){ AreaID=, AreaName="厦门市", Depth=}
  19. }
  20. },
  21. new Area()
  22. {
  23. AreaID=,
  24. AreaName="四川省",
  25. Depth=,
  26. cityList=new List<Area>()
  27. {
  28. new Area(){ AreaID=, AreaName="成都市", Depth=}
  29. }
  30. }
  31. };
  32.  
  33. Newtonsoft.Json.JsonSerializerSettings jSetting = new Newtonsoft.Json.JsonSerializerSettings();
  34. string body = "var citylist = " + Newtonsoft.Json.JsonConvert.SerializeObject(areaList, jSetting) + ";";
  35. System.IO.File.WriteAllText(Server.MapPath("~/Scripts/temp.js"), body, System.Text.Encoding.UTF8);
  36. return Json(new { success = true, msg = "生成成功" }, JsonRequestBehavior.AllowGet);
  37. }
  1. <button id="btnCreate">
  2. 生成静态JS文件
  3. </button>
  1. $("#btnCreate").click(function () {
  2.  
  3. $.get("/Home/CreateFile", "", function (r) {
  4. if (r.success)
  5. {
  6. alert("生成成功");
  7. }
  8. });
  9. });

静态文件在~/Scripts/temp.js:

内容如下:

3.注释掉AJAX请求,指向静态文件读取数据

别忘记添加:<script src="~/Scripts/temp.js"></script>

4.最终效果展示

没有网络请求,读取的是静态文件,根据具体情况具体操作。

将Json数据保存在静态脚本文件中读取的更多相关文章

  1. C# 结构体和List<T>类型数据转Json数据保存和读取

    C#  结构体和List<T>类型数据转Json数据保存和读取 一.结构体转Json public struct FaceLibrary { public string face_name ...

  2. pyhton 从web获取json数据 保存到本地然后再读取

    从web中获取json数据直接进行处理总认为太慢.主要是从web中获取获取数据的过程有点慢. 所以就在想 假设先利用空暇时间把json数据获取并保存到本地,然后再从本地文件里读取和操作.应该就要快非常 ...

  3. SQL Server将数据导出到SQL脚本文件

    http://www.studyofnet.com/news/list-8883.2-1-4.html 一.SQL Server 2008将数据导出到SQL脚本文件 1.打开SQL Server200 ...

  4. 一些常用的文本文件格式(TXT,JSON,CSV)以及如何从这些文件中读取和写入数据

    TXT文件: txt是微软在操作系统上附带的一种文本格式,文件以.txt为后缀. 从txt文件中读取数据: with open ('xxx.txt') as file: data=file.readl ...

  5. java从文件中读取数据然后插入到数据库表中

    实习工作中,完成了领导交给的任务,将搜集到的数据插入到数据库中,代码片段如下: static Connection getConnection() throws SQLException, IOExc ...

  6. shell如何传递变量到另一个脚本文件中

    http://www.jbxue.com/article/shell/20707.html本文介绍了shell脚本传递变量到另一个脚本文件中的方法,在脚本中调用另一脚本,即创建了一个子进程,感兴趣的朋 ...

  7. 从文件中读取yuv和h264数据

    1.从文件中读取h264数据 参考ffmpeg avc.c写的从文件中一帧帧读取h.264数据的demo #include <stdio.h> #include <stdlib.h& ...

  8. 从PCD文件中读取点云数据

    博客转载自:http://www.pclcn.org/study/shownews.php?lang=cn&id=84 在本小节我们学习如何从PCD文件中读取点云数据. 代码 章例1文件夹中, ...

  9. 【Python】从文件中读取数据

    从文件中读取数据 1.1 读取整个文件 要读取文件,需要一个包含几行文本的文件(文件PI_DESC.txt与file_reader.py在同一目录下) PI_DESC.txt 3.1415926535 ...

随机推荐

  1. Python 小而美的函数

    python提供了一些有趣且实用的函数,如any all zip,这些函数能够大幅简化我们得代码,可以更优雅的处理可迭代的对象,同时使用的时候也得注意一些情况   any any(iterable) ...

  2. opencv源码:cascadedetect

    级联分类器检测类CascadeClassifier,提供了两个重要的方法: CascadeClassifier cascade_classifier; cascade_classifier.load( ...

  3. .NET Core中间件的注册和管道的构建(3) ---- 使用Map/MapWhen扩展方法

    .NET Core中间件的注册和管道的构建(3) ---- 使用Map/MapWhen扩展方法 0x00 为什么需要Map(MapWhen)扩展 如果业务逻辑比较简单的话,一条主管道就够了,确实用不到 ...

  4. [PHP内核探索]PHP中的哈希表

    在PHP内核中,其中一个很重要的数据结构就是HashTable.我们常用的数组,在内核中就是用HashTable来实现.那么,PHP的HashTable是怎么实现的呢?最近在看HashTable的数据 ...

  5. 一百元的智能家居——Asp.Net Mvc Api+讯飞语音+Android+Arduino

    大半夜的,先说些废话提提神 如今智能家居已经不再停留在概念阶段,高大上的科技公司都已经推出了自己的部分或全套的智能家居解决方案,不过就目前的现状而言,大多还停留在展厅阶段,还没有广泛的推广起来,有人说 ...

  6. 0-1背包问题蛮力法求解(java版本)

    sloves: package BackPack; public class Solves {  public int[] DecimaltoBinary(int n,int m)  {   int ...

  7. 15个关于Chrome的开发必备小技巧[译]

    谷歌Chrome,是当前最流行且被众多web开发人员使用的浏览器.最快六周就更新发布一次以及伴随着它不断强大的开发组件,使得Chrome成为你必备的开发工具.例如,在线编辑CSS,console以及d ...

  8. 利用Node.js的Net模块实现一个命令行多人聊天室

    1.net模块基本API 要使用Node.js的net模块实现一个命令行聊天室,就必须先了解NET模块的API使用.NET模块API分为两大类:Server和Socket类.工厂方法. Server类 ...

  9. js闭包 和 prototype

    function test(){ var p=200; function q(){ return p++; } return q; } var s = test(); alert(s()); aler ...

  10. 【Java学习系列】第3课--Java 高级教程

    本文地址 可以拜读: 从零开始学 Java 分享提纲: 1. Java数据结构 2. Java 集合框架 3. Java泛型 4. Java序列化 5. Java网络编程 6. Java发送Email ...