搜索
javascript - 在github上写博客,文章内容数据怎么存放获取,有什么好的解决方法?
黄舟
黄舟 2017-04-10 16:31:39
[JavaScript讨论组]

这几天在github上搭建了博客,但是遇到了这个问题。
本来我是把数据都放在json文件里的,然后。。。我发现这就是在虐待自己,这样写过的人应该都知道,以下是部分代码

这个text对象里就是正文内容,很长很长。。然后就悲剧了!
所以我就又把里面的内容单独放到一个html文件了,向下面这样:

然后就感觉性能也不够好,而且每一篇博文,难道都要新建一个html文件。。汗。。

有没有什么好的解决办法?下面是博客的地址:
https://yuyao1994.github.io/blog

希望有高手能够指点一下。

还有,我的页面除了导航logo外,所有内容都是ajax动态获取的。我的这种写法是不是有问题,
感觉性能有很大的问题!以下附上javascript的源码:

//request方法获取文章内容
$(function(){
function request(title){

var msg="";
$.ajax({
  url: 'text/content.json',
  type: 'GET',
  cache:false,
  dataType: 'json',
  data:"",
})
.done(function(data) { 
  if(title==undefined) {
    var maxNum=data.blog[data.blog.length-1];
    msg+="<header><h2>"+maxNum.title+"</h2><h5>"+maxNum.time+"</h5></header>";
    msg+="<p class='text'></p>";
    $(".content").html(msg); 
    eval("("+maxNum.text+")");
  }else{
    var i=0,j=data.blog.length;
    for(;i<j;i++){
      if(title==data.blog[i].title){
        break;
      }
    }
    var charNum=data.blog[i];
    msg+="<header><h2>"+charNum.title+"</h2><h5>"+charNum.time+"</h5></header>";
    msg+="<p class='text'></p>";
    $(".content").html(msg); 
    eval("("+charNum.text+")");
  };
})
.fail(function() {
  $(".content").html("<h2 style='text-align:center;'>抱歉,没有找到该篇文章!</h2>");
})

}
request();
//获取最新文章列表
$(function(){
var titleList="";
$.ajax({

url: 'text/content.json',
type: 'get',
cache:false,
dataType: 'json',

})
.done(function(data) {

var num=data.blog.length;
if (num<6) {
  var i,j=data.blog.length-1;
  for(i=j;i>-1;i--){
    titleList+="<li><a href='javascript:void(0)'>"+data.blog[i].title+"</a><span>--"+data.blog[i].style+"</span><span class='time'>"+data.blog[i].time+"</span></li>"
  }
  $(".leftNav .newsList").html(titleList);
}else if(num>5){
  var i,j=data.blog.length-1;
  for(i=j;i>(num-6);i--){
    titleList+="<li><a href='javascript:void(0)'>"+data.blog[i].title+"</a><span>--"+data.blog[i].style+"</span><span class='time'>"+data.blog[i].time+"</span></li>"
  }
  $(".leftNav .newsList").html(titleList);
};

})
.fail(function() {

$(".leftNav .newsList").html("<li>获取文章列表失败!</li>");

})
})
//最新文章列表点击事件
$(".container .leftNav .newsList").delegate("li a","click",function() {

var title=$(this).text();
request(title);

});
//获取分类列表
function styleList(style){

var msg="";
$.ajax({
  url: 'text/content.json',
  type: 'get',
  cache:false,
  dataType: 'json',
})
.done(function(data) {
  var i,j=data.blog.length-1;
  for(i=j;i>-1;i--){
    if (style==data.blog[i].style) {
      msg+="<ul class='styleList'><li><a>"+data.blog[i].title+"</a><p class='text'>"+data.blog[i].profile+"</p></li><ul>";
    }; 
  }
  if(msg==""){
    msg+="<h2>本博客"+style+"系列目前没有文章,请看其他系列的文章!</h2>"
  };
  $(".content").html(msg);
})
.fail(function() {
  $(".content").html("<h2 style='text-align:center;'>抱歉,获取文章列表失败!</h2>");
})    

}
//styleList列表点击事件
$(".content").delegate('.styleList li a', 'click', function() {

var title=$(this).text();
request(title);

});
//导航按钮点击事件
$(".container .leftNav .btn li").click(function() {

var style=$(this).find('a').text();
styleList(style);

});
})

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(11)
迷茫

你需要Jekyll,这是一个简单的,针对博客设计的静态网站生成器

怪我咯

no zuo no die

用 jekyll 或 hexo

ringa_lee

写issue里

天蓬老师

如果你只用JavaScript,你也可以用JavaScript写一个程序来动态生成文件。

PHP中文网

不要用拼接字符串的方式产生html,而是应该使用前端的模板引擎

黄舟

hexo,附带我的博客

巴扎黑

其实如果是静态博文…为何不直接用MD...很多静态博文的博客系统都是这么做的

伊谢尔伦

hexo 简单易用

大家讲道理

为什么要这么做...
直接把文章写成md格式,用jekyll或者Hexo生成静态页面不就好了?

例如:Ahonn' Blog

PHP中文网

有git的基础,用一下hexo会简单很多
YzzBlog

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号