Unfortunately I cannot give you a complete explanation because it is lengthy and depends on the design of your views.
If you have a single activeForm which is distributed over the various CJuiTabs, then you will probably have to refresh the whole view with all tabs.
But if you have individual views in each CJuiTabs then you can give the outside div of each view a unique id. Then you can update the content of that div with the ajax response.
If you have CGridViews in the different CJuiTabs, then it becomes a different monster, because the javascript of the CGridView will be added to the javascript of the other views - causing multiple submits and other problems. To prevent this, I put the CGridView in an iframe inside the CJuiTab. In this case I do not update the CGridview with the ajax response, but rather reload the iframe source with the CGridview’s url.
This prevents javascript problems, but it brings new challenges if you want to communicate from views "inside" the iframe to views "outside" the iframe.
Also, you would probably want to receive "array like" data from the server as ajax response, because then you can include flags in the response to inform your ajax function about the status of the transaction. If this is the case then you have to use "json" as the ajax data type.