所以我使用node.js创建了一个小应用程序,并像我这样提供了我的资产文件夹
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
return FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
}
func applicationWillResignActive(_ application: UIApplication) {
FBSDKAppEvents.activateApp()
}
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey: Any] = [:]) -> Bool {
return SDKApplicationDelegate.shared.application(app, open: url, options: options)
}
func applicationDidBecomeActive(application: UIApplication) {
// Call the 'activate' method to log an app event for use
// in FB analytics and advertising reporting.
AppEventsLogger.activate(application)
// ...
}
现在,在我的app.use(express.static('assets'));
文件中,我可以轻松地引用图像,例如
.ejs
现在,我要做的是遍历该文件夹中的所有图像并将其显示在页面上。
像
这样的东西var img = document.createElement('img');
img.src = '/img/picture.jpg'
所以我的问题是,如何使用JS获取所有静态图像的名称?我是否必须对目录进行AJAX调用才能读取文件名?或者使用node.js在服务器端执行此操作,并将图像传递到var images = new Array();
images = { All pictures in the /img directory }
images.forEach(function(image) {
var img = document.createElement('img');
img.src = image;
}
文件。通常,这是更好的做法(可能是一个单独的问题,但我想我会问)?
提前致谢
答案 0 :(得分:1)
所以我的问题是,如何使用JS获取所有静态图像的名称?
在向服务器发出请求之前,客户端对服务器将响应的URL一无所知。
我是否必须对目录进行AJAX调用才能读取文件名?
这将是一种可能的方法。
或者使用node.js在服务器端执行此操作,并将图像传递到.ejs文件。
这也可行
通常,这是更好的做法(可以是一个单独的问题,但我想我会问)?
取决于。
使用Ajax需要第二个HTTP请求,但可以缓存响应。
在页面加载时执行此操作会减少请求的数量,但是,但是每次加载页面时都必须完成获取列表的工作,并且会增加该页面的大小。
最好,使用唯一可衡量的指标,取决于个人重新加载页面的频率以及列表更改的频率。