« 2017年04月 | メイン | 2017年06月 »
2017年05月18日
ダウンロードプログレッシブバー
アップロードのプログレッシブバーは簡単にできるようになっている。
$.ajax({
中略
xhr: function() {
var XHR = $.ajaxSettings.xhr();
if (XHR.upload) {
XHR.upload.addEventListener(
'progress',
function(e) {
var progre = parseInt(e.loaded / e.total * 10000) / 100;
console.log( progre + "%");
}, false);
}
return XHR;
},
ダウンロードができねえ。そうアップロードのときのようには出来ない。
なので ファイルをダウンロードさせるのに直接ファイルをダウンロードさせずに、
プログラムをかます。その際どの程度ファイルを投げたかをサーバー内のファイルに記載
そのデータを表側のjavascriptでsettimeoutでなんども取得して画面に進捗表示する。
filesize にてファイルのサイズ取得
$handle = fopen($path, "rb");
$downloadedsize = 0;
while(!feof($handle))
{
print fread($handle, 4096);
$downloadedsize +=
4096;
んでここにてナンパーか計算して外部ファイルに記述
ob_flush();
flush();
}
fclose();
と思ったが、調べてみると出来た・・・
$.ajax({
url: "depth.txt",
type: 'GET',
dataType: "text",
cache: true,
success: function(data) {
lists = CSVToArray(data);
google.maps.event.addListener(map, 'bounds_changed', showPointFunc);
$("body").css({
opacity: 1
});
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
var mess;
console.error("XMLHttpRequest : " + XMLHttpRequest.status);
console.error("textStatus : " + textStatus);
console.error("errorThrown : " + errorThrown.message);
if (textStatus === "timeout") {
mess = "タイムアウトしました。低速回線の場合タイム・アウトする可能性があります。何度施行しても状況が変わらない場合、システム管理者に連絡してください";
} else {
mess = "データ読み込みでエラー発生";
}
alert(mess);
return;
},
xhr: function() {
// get the native XmlHttpRequest object
var xhr = $.ajaxSettings.xhr();
xhr.onprogress = function(e) {
console.log(e.loaded / e.total);
};
return xhr;
}
});
投稿者 muuming : 17:48
2017年05月10日
smarty array_key__exist
{if $key|array_key_exists:$array)}
投稿者 muuming : 12:31
2017年05月01日
更新系のテーブル構造
create table hoge(
id serial not null,
item_id serial not null,
item_editor_id int not null,
item_name text,
instime timestamp not null default now()
);
更新の場合はitem_id指定して、新規登録の場合はitem_idおまかせでinsert
insert into hoge("item_id","item_editor_id","item_name")values($item_id,$item_editor_id,'itemname');
insert into hoge("item_editor_id","item_name")values(,$item_editor_id,'itemname');
情報取得時はidが一番大きいものを取得
select * from hoge as a where id = (select id from hoge as s where s.item_id = a.item_id order by s.item_id desc limit 1);
ビューを作っておきましょう
create view items
-> as select item_id, item_name,instime from hoge as a
-> where id = (select id from hoge as s where s.item_id = a.item_id order by s.item_id desc limit 1);
投稿者 muuming : 08:31