我有一个.txt文件,其中包含三维形式的点(x,y,z)。 使用go我将点坐标提取到数组X [],Y [],Z []中。 现在我需要将这些数组传递给外部javascript(即a 功能在js)。 我该怎么做呢? 一般来说,我如何将一些参数传递给.html中的任何js函数 文件。
答案 0 :(得分:1)
我会说:只是传递它们(通过引用):
function doSomethingWithPpoints(x,y,z){
//do something with for example x[0], y[1] etc.
}
//later on
doSomethingWithPoints(points1,points2,points3);
[编辑]这可能是一个想法:将数组串行化为一个附加链接,作为查询字符串到URL:
var url = 'http://somesite.net/somefile.html'+
'?points1=1,2,3&points2=3,2,1&points35,6,7';
现在在somefile.html的javascript中提取这样的数组:
var qstr = location.href.split('?')[1],
points = qstr.split('&')
pointsObj = {},
i = 0;
while ((i = i + 1)<points.length) {
var point = points[i].split('=');
pointsObj[point[0]] = point[1].split(',');
}
这应该为对象pointsObj
提供3个属性(points1-3)和数组值
//pointsObj looks like this
{ points1: [1,2,3],
points2: [3,2,1],
points3: [5,6,7] }
答案 1 :(得分:0)
假设你正在运行的服务器是Go程序,你应该反过来。
javascript函数向服务器执行XHR请求,询问矢量数据。然后,服务器可以选择从文本文件中读取它们(或者已经将它们存储在内存中),并将编码为json的数据发送回客户端。
的index.html:
'doXHR'方法应该对服务器执行实际的get请求。无论实施是什么,都由您来决定。为此目的,jquery框架有一个$ .ajax()方法。
function getData() {
doXHR({
uri: "/getvectors",
success: function(data) {
// data now holds the json encoded vector list.
// Do whatever you want with it here.
}
});
}
在Go方面:
func myVectorHandler(w http.ResponseWriter, r *http.Request) {
var vectors struct {
X []float32
Y []float32
Z []float32
}
// Fill the X/Y/Z slices here.
// Encode it as json
var data []byte
var err os.Error
if data, err = json.Marshal(vectors); err != nil {
http.Error(w, err.String(), http.StatusInternalServerError)
return
}
// Set the correct content type and send data.
w.Headers().Set("Content-Type", "application/x-json");
w.Write(data);
}
一个更简单的解决方案是将矢量数据以json格式存储在文本文件中,并按原样将其提供给客户端。这样你的Go服务器就不必在运行时执行转换。