前提・実現したいこと
RaspberryPi上ののbottleサーバーを使用し、そこにアクセスしたときにJavaScriptでcsvファイルをサーバーから取得し、そのファイル情報を基に処理を行いたい。
発生している問題・エラーメッセージ
csvファイルの取得を行ってみたが、XMLHttpRequestが同期読み込みは推奨されていないらしくエラー警告が出てしまい、代替方法が分からず困っています。
追記:上手く動作しないときがあります。
(index):23 [Deprecation] Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org/.
該当のソースコード
HTML
1<!DOCTYPE html> 2<html lang="ja"> 3 4<head> 5 <meta charset="UTF-8"> 6 <title>CSV読み込みサンプルページ</title> 7</head> 8 9<body> 10 <h1>CSV読み込みサンプル</h1> 11 <p>読み込んだCSVが開発コンソールに表示されます。</p> 12</body> 13 14<script> 15function loadCSV(targetFile) { 16 17 // 読み込んだデータを1行ずつ格納する配列 18 var allData = []; 19 20 // XMLHttpRequestの用意 21 var request = new XMLHttpRequest(); 22 request.open("get", targetFile, false); 23 request.send(null); 24 25 // 読み込んだCSVデータ 26 var csvData = request.responseText; 27 28 // CSVの全行を取得 29 var lines = csvData.split("\n"); 30 31 for (var i = 0; i < lines.length; i++) { 32 // 1行ごとの処理 33 34 var wordSet = lines[i].split(","); 35 36 var wordData = { 37 name: wordSet[0], 38 age: wordSet[1], 39 }; 40 41 allData.push(wordData); 42 } 43 44 console.log(allData); 45} 46 47loadCSV("/static/sample.csv"); 48 49</script> 50</html>
csv
1太郎,21 2二郎,18 3三郎,15
python
1#!/usr/bin/env python 2from bottle import run, route, template, request, static_file 3 4@route("/") 5def test(): 6 return template("sample.html") 7 8@route('/static/<file_path:path>') 9def static(file_path): 10 return static_file(file_path, root='.') 11 12run(host="0.0.0.0", port=8080)
試したこと
ソースコードは以下のサイトを参考にしました。
https://joyplot.com/documents/2017/03/01/xmlhttprequest-javascript-csv/
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/21 00:47 編集
2019/01/22 15:20