【问题标题】:Retrieve text file line-by-line using Jquery $.get()使用 Jquery $.get() 逐行检索文本文件
【发布时间】:2011-09-21 03:29:47
【问题描述】:

是否可以逐行检索txt文件内容?

现在我正在使用这个代码:

var file = "http://plapla.com/pla.txt";
function getFile(){
     $.get(file,function(txt){
        save(txt.responseText);
 }); 
}

save 函数将内容保存到一个变量中。 在我打印出来之后,检索文件的所有内容都在彼此的末尾(不是逐行)。

【问题讨论】:

    标签: jquery ajax cross-domain


    【解决方案1】:

    我不确定您的意思是当您打印出文件时将其全部推送到一行,或者您是说要逐行分割文件。

    如果问题是当你显示它时,它被推到一起,那只是因为你把它放到了一个 HTML 页面中,这意味着换行符被忽略了。那么你有两个选择,要么用<br />标签替换所有的换行符,要么把你所有的文本放在一个前置标签中。

    var file = "http://plapla.com/pla.txt";
    function getFile(){
        $.get(file,function(txt){
            save(txt.responseText.replace(/\n/g, "<br />");
        }); 
    }
    
    // OR
    
    var file = "http://plapla.com/pla.txt";
    function getFile(){
        $.get(file,function(txt){
            save($("<pre />").text(txt.responseText));
        }); 
    }
    

    如果你只是想逐行处理数据,那么一旦你收到它,你可以对它做任何你喜欢的事情,就像逐行拆分一样。

    var file = "http://plapla.com/pla.txt";
    function getFile(){
        $.get(file,function(txt){
            var lines = txt.responseText.split("\n");
            for (var i = 0, len = lines.length; i < len; i++) {
                save(lines[i]);
            }
        }); 
    }
    

    【讨论】:

      【解决方案2】:

      Javascript 只能发出一个 HTTP 请求,它会返回一个带有全文的 HTTP 响应,不要想到通过打开套接字并逐行读取来逐行读取。

      但是,如果您的意思是逐行处理已读取的数据,则可以执行以下操作:

      lineByLine = readData.split("\n");
      process(lineByLine[0]); // First line
      

      【讨论】:

        【解决方案3】:

        如果您尝试逐行显示(保留编码的换行符),最简单的方法是将检索到的文本推送到 textarea 元素而不是 div(或类似元素)中。浏览器会智能地适当地处理传入的文本。

        自我更新:注意到这两种技术(data.replace() 或仅使用 textarea)似乎都不适用于 IE9。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-12-07
          • 1970-01-01
          • 2014-09-11
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多