App-Detail #1025 HTML-Anwendungen ohne Web-Server -- {2}

Es gibt Seiten, die haben alle Daten dabei.

Oder ein Server bzw. Webservice eines Dritten,
stellt die Daten zur Verfügung.

Dann könnte eine HTML-Datei reichen,
um per
- TypeScript/JavaScript HTML CSS
die Daten zu nutzen.

/public/js_es6_app_stempelkarte.png


--> http://kantn.jobst-software.net:8080/aussendienst4/stempelkarte4.html

HTML kann einfach sein (<h3>Überschrift</h3> <p>Text</p> <h3>...</h3> <p>...)


und samt
- CSS
- JavaScript
- ohne Zusatzsoftware
anzeig- und druckbar per Browser.
( z.B. kann man mit einer HTML-Datei eine kleine App umsetzen )


HTML funktioniert mit
- HTTP-Servern
- Dateiservern
- SQL (die den Datentyp XML kennt)
- ...
und kann vom jeweiligen Berechtigungssystem profitieren.

HTML kann man auch so gestalten, dass es maschinenlesbar (XML) ist.
- 1 -    (TxtDoc-html-ohne-web-server2026-05-27.html)


App-Detail #1034 HTML-Tabelle ohne Web-Server mit Webservice als Datenquelle

z.B. für eine Datenquellen, 
für die man eine URL hat
und man als Tabelle anzeigen möchte.
( Cross-Origin ist hier zu beachten )




z.B. "Tabelle"

--> http://kantn.jobst-software.net:8080/aussendienst4/preferences.html


/public/einstellungen_tabelle_html.png

man kann mit wenig HTML / TypeScript/JavaScript auskommen,


wenn Cross-Origin und Authentifizierung bereits gelöst sind.



<html>
<head>
<title>Einstellungen - Tabelle</title>

<style>
td {
border: solid 1px darkGray; min-width: 2rem; padding: 0.2rem;
}
</style>

<script type="module" >
"use strict";

window.addEventListener( "load", function() {
const select_url = getEinstellungen_Tabelle_Select_url();
fetch( select_url, { credentials: 'include' })
.then( (response) => response.text() )
.then( (text) => {
const table_ele = document.getElementById("d-print-table");
const json_doc = JSON.parse( text);
fill_table( document, table_ele, json_doc);
})
.catch( function( exc) {
alert( "fetch failed (" + exc + ")");
});
});


function fill_table( html_doc, table_ele, json_doc) {
const tag_names = [ "th", "td" ];
for( let tag_name_i=0; tag_name_i < tag_names.length; tag_name_i++ ) {
let tag_name = tag_names[ tag_name_i];
let trs = json_doc;
for( let tr_i=0; tr_i < ( tag_name == "th" && trs.length >= 1 ? 1 : trs.length ); tr_i++ ) {
let tr = trs[ tr_i];

let tr_ele = html_doc.createElement( "tr");
table_ele.appendChild( tr_ele);

let tds = tr;
Object.entries( tds).forEach( ( [fdName, fdValue]) => {
let td_ele = html_doc.createElement( tag_name);
tr_ele.appendChild( td_ele);

td_ele.innerText = ( tag_name == "th" ? fdName : fdValue );
});
}
}
}


function getEinstellungen_Tabelle_Select_url() {
const select = getEinstellungen_Tabelle_Select();
const select_sql = select[ "sql"];
const json_parameters = JSON.stringify( select[ "param"]);

const select_url = "/MywebDb3Servlet" + "?sql=" + encodeURIComponent( select_sql) + "&parameters=" + encodeURIComponent( json_parameters);
return select_url;
}


function getEinstellungen_Tabelle_Select() {
const select_sql = "select _id, PREFERENCE_KEY, PREFERENCE_VALUE from Preferences order by _id";
return { sql: select_sql, param: [] };
}
</script>
</head>

<body>



<h1>Einstellungen - Tabelle</h1>


<table id="d-print-table" >


</table>


</body>
</html>
- 2 -    (TxtDoc-html-ohne-web-server2026-05-27.html)

INTRANET