【问题标题】:reading input file from server and displaying output on client side从服务器读取输入文件并在客户端显示输出
【发布时间】:2010-06-11 09:56:12
【问题描述】:

我必须从服务器端读取文件。获取其内容存储在列表中并发送到模板 现在,我的问题是如何访问此列表以便逐行显示文件的内容。 我正在使用 ajax 和 jquery 来获取客户端的数据

def showfiledata(request):      
    f = open("/home/tazim/webexample/test.txt")  
    list = f.readlines()  
    return_dict = {'list':list}  
    json = simplejson.dumps(list)  
    return HttpResponse(json,mimetype="application/json")  

【问题讨论】:

    标签: jquery ajax django


    【解决方案1】:

    我会这样做:

      var target = $('p.target');
      $.getJSON("filedata.json", function(json){
         $.each(json.list, function (i, line) {
           $('<span></span>')
             .html(line)
             .appendTo(target);
      });
    

    【讨论】:

      【解决方案2】:

      如果您的“服务器上的文件”是 HTML(比如 NEWS.html)并且您想使用 jQuery ...

      做一个

      <div id="NailMeHere"><!-- filled by Ajax call --></div>
      

      在您的文档中并在页面加载时执行以下代码

      $(document).ready(function(){
          $('#NailMeHere').load("NEWS.html");
      });
      

      您的 NEWS.html 可能包含您网站的 CSS、链接、所有内容......

      【讨论】:

        【解决方案3】:

        基于 HTTP 方法,您可以使用jQuery.ajax() 函数。

        我不确定 list 数据是如何格式化的,一个简单的方法是在 ajax 调用返回后使用 JavaScript 本身记录 json 对象。

        显示 JSON 对象结构的方法有很多,最简单的方法是使用 FireBug 等工具,并使用适当的 console.log(); 函数。

        否则,您可以简单地将对象循环到您感兴趣的任何级别。

        还有很多浏览器支持({some:'obj'}).toSource();

        【讨论】:

          【解决方案4】:
          class FileByLine(object):
            def __init__(self, file_object):
              self.f = file_object
          
            def next(self):
              # do some line format like <li>line</li>
              data = self.f.readline()
              if data:
                return data
              else:
                raise StopIteration
          
            def __iter__(self):
              return self
          

          在行动:

          return HttpResponse(FileByLine(open('/path/file')))
          

          在 JS 中:

          $('#lines_from_file').load("<action url>")
          

          你也可以试试http流媒体方法http://ajaxpatterns.org/HTTP_Streaming

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-03-01
            • 1970-01-01
            • 1970-01-01
            • 2016-12-27
            • 1970-01-01
            相关资源
            最近更新 更多