EmF*_*eld 6 javascript jquery google-app-engine flask coffeescript
我正在为带有appengine后端的应用创建前端上传.
我想要的是一个文件上传解决方案,我不想使用plupload或那些现成的解决方案.
我基本上将图像提交给iframe,然后在上传时盖上封面.然后,在完成后,我执行了一个ajax调用,以获取要渲染的下一个视图的图像ID.但是,在上传完成之前总是调用渲染,因此我没有从后端获取任何图像ID.谁能帮忙?
这是我上传的代码
perform_input3:(event)=>
event.preventDefault()
$('#product-input-3').hide()
$('#product-input-3').submit()
$('#upload-cover').show()
item_id = $('#item3_id').val()
app.views.imageselect.render(item_id)
Run Code Online (Sandbox Code Playgroud)
app.views.imageselect.render(item_id)如下:
render:(data)=>
@item_id = data
item_id = @item_id
$.ajax(
url: '/get_image_list/'
type: 'GET'
dataType: 'json'
data: {item_id: item_id}
success:(data) =>
@payload = data
$(@el).append imageSelectTemplate(@payload)
return @
)
Run Code Online (Sandbox Code Playgroud)
我不想使用setTimeout函数,因为它不会灵活,具体取决于连接速度.任何帮助将不胜感激 :)
本质上,您的问题可以归结为:您想要等待对服务器进行 Ajax 调用,直到您请求的数据可用为止。从服务器获取通知很棘手(取决于后端的实现方式),因此解决问题的最佳解决方案可能是定期进行 Ajax 调用(例如每秒一次),直到从服务器获得成功响应。
下面是一些应该执行此操作的代码:
do ajaxCall = =>
$.ajax
url: '/get_image_list/'
type: 'GET'
dataType: 'json'
data: {item_id: item_id}
success: (data) =>
@payload = data
$(@el).append imageSelectTemplate(@payload)
error: ->
setTimeout ajaxCall, 1000
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2066 次 |
| 最近记录: |